为什么接口很有用?
实际上,我对为什么接口是有用/必要的有一点想法,但是...
接口有哪些有趣或现实的应用?
发布于 2009-01-16 03:55:17
接口很有趣,因为您可以允许两个类实现相同的方法。让我们看一个例子。
假设我有一个名为Animal的基类。所有的动物都会呼吸和交流。现在假设我有3个类,分别是Dolphin,Human和Tiger。所有这些动物都会呼吸和交流。但是我想为人类和老虎实现一个行走的方法。海豚不会走路。因此,我继承了后两者的IWalk方法,当我编译该类时,我必须实现接口中指定的方法,否则它将无法编译。这是一份合同,上面说:“如果我想实现这个类,我就必须实现这些方法。”
发布于 2009-01-16 03:54:58
我对接口的一个用途是帮助对难以模拟的框架类进行单元测试。我将创建一个工作原理与框架类基本相同的接口和一个实现该接口的包装类。包装器类的构造函数接受框架类的一个实例作为参数。包装器将其支持的接口功能委托给框架类,但我将实现给我的接口,而不是框架。使用该接口使我可以轻松地在单元测试中模拟包装器类的功能--使用模拟框架,或者提供也实现该接口的伪类,并通过依赖项注入将其提供给通常依赖于该框架类的任何类。
发布于 2009-01-16 03:57:51
它们允许多态性,而没有继承的一些缺点。
我所说的继承的坏面是什么意思?
代码和数据继承了很长的链条(使其不那么明显)。
在继承树中的某处被重写的继承成员。
如何使用多态性?
以避免重蹈覆辙。创建使用接口而不是实现接口的对象的函数、开关或条件。
特定于的
在Java中,使用接口作为获得多重继承的一种方式通常是有意义的。
如果一些东西自然地归入两个类别,并且你对这两个类别都有不同的预期行为,那么这是有意义的。
来自Web的一些Java示例
http://home.cogeco.ca/~ve3ll/jatutor5.htm
http://java.freehep.org/lib/freehep/doc/root/index.html
http://www.codeguru.com/java/tij/tij0080.shtml
https://stackoverflow.com/questions/449444
复制相似问题