接口与抽象类¶
- 类(class)是构造对象的模板或蓝图。
- 抽象类作为派生其它类的基类,而不作为想使用的特定的实例类。
- 抽象方法充当着占位的角色,它们的具体实现在子类中。
- 每个类只能扩展于一个类(单继承)。
- 接口(interface)主要用来描述类具有什么功能,而不给出每个功能的具体实现。
一个类可以实现一个或多个接口。
- 接口不是类。
- 接口中的方法都自动地设置为
public
。 - 接口中的域自动设置为
public static final
。
选择接口和抽象类是不是一个非此即彼的命题。如果你需要修改你的设计,使用接口。然而,你可以使用抽象类来提供一些默认的方法。在应用框架中,抽象类是一个很好的选择。
抽象类让你定义一些操作;并且强迫子类去提供另外的方法。比如,你有一个应用框架,一个抽象类可以提供像是处理消息和事件的默认服务。这些服务允许你的应用连接到应用框架。然而,一些应用独有的功能只能在你的应用中使用。 独有的功能比如应用依赖的启动和关闭任务。抽象类可以声明抽象的关闭和启动方法,而不用再自己定义。基础类知道它需要这些方法,但你的子类不知道如何去实现那些方法,只知道必须继承这些动作。需要启动时,抽象类能调用启动方法。 当基类调用这个方法,Java调用子类复写的方法。
很多开发者忘记了定义了抽象方法的类也能够调用这些方法。抽象类是一个很好的方法来创建计划的继承层次结构。 它们对于类继承中的非叶层次是一个好的选择。
http://www.javaworld.com/article/2077421/learn-java/abstract-classes-vs-interfaces.html
本站说明
一起在知识的海洋里呛水吧。广告内容与本站无关。如果喜欢本站内容,欢迎投喂作者,谢谢支持服务器。如有疑问和建议,欢迎在下方评论~