接口与抽象类

来源:互联网 发布:c语言编程软件64位 编辑:程序博客网 时间:2024/06/03 22:44

一、什么是接口?
接口是一些方法特征的集合,而这些方法一般都是系统中经常用到的方法。作为接口,它只有方法的特征,所以它可以在不同的地方实现时,具有不同的行为。接口把方法的特征和实现分割开来,这种分割体现在接口常常代表一种角色的演员,一个角色可以由不同的演员来演。
二、为什么要使用接口
一个对象需要与其他的对象相互作用,来完成一项工作。而对其他对象的调用总不能将代码硬性整合到一起。需要实现动态的可插入性。如果使用继承的方式。一个对象只能继承于一个父类。当它已经继承了某个父类时,再要让他加上一个父类是不可能的。如果非要做的话,只能是将这个新的父类作为原父类的父类。然而,加入一个类的父类是 frame类 ,难道新加入的类要在 java.lang.object 类之上?这显然是不现实的。因此没有接口,可插入性就得不到保证。
三、什么是抽象类?
抽象类是一个类的部分实现,抽象类可以有构造方法,实例变量。抽象类不能进行实例化,抽象类和子类的关系是模板方法的应用。
四、抽象类的用途
1.抽象类通常代表一个抽象概念,它提供一个继承的出发点。由于抽象类不能被实例化所以设计出一个抽象类肯定是用来被继承的。
2.关于代码重构的建议
如果两个具体类A与B之间存在继承关系。那么可以通过建立一个抽象类或者接口C来使得A与B成为C的子类。
3.抽象类应该具有更多共同的代码
可以提高代码的复用率,而且可以在修改时只需要修改抽象类一处即可。典型的例子即为策略模式。尽可能将公用的方法移动到抽象策略中
五、什么时候可以使用继承复用?
1.子类是超类的一个特殊的种类而不是超类的某一部分。子类与超类之间存在is-a的关系。而has-a应当是使用聚合关系实现
2.子类具有扩展超类的责任,而不是大量的覆盖超类的方法。

0 0
原创粉丝点击