本帖最后由 yunhaitian 于 2012-11-29 12:15 编辑
1.抽象类
抽象方法必须放在抽象类中,但抽象类中不一定都是抽象方法。
子类继承抽象类后,必须覆写所有的抽象方法后才能建立子类对象调用。如果子类只是覆写了所继承的抽象类中的部分方法,那该子类必须仍为抽象类。
子类中一些共有的功能,但是具体实现方式不同,于是抽取出来,放入抽象类。所以抽象类对于子类也有一些规范作用。
用处:当某个类定义了一个方法供子类调用,但是方法中有一部分功能是不能具体确定的,所以这一部分以另一个方法来封装。但是不同子类,该功能具体实现内容不同,所以需要子类分别覆写该方法, 当某个功能不确定时候,就用抽象。
2.接口
方法都是抽象的。
实现接口的子类需要将接口中的抽象方法都覆写后才可以实例化,否则子类中就包含抽象方法,相当于抽象类了。
接口用途:
a.接口是对外暴露的规则。功能实现的框架。
b.接口是程序的功能扩展。
c.降低了耦合性。
作为功能扩展应用接口。此时,接口用于扩展从共有类中无法继承到,而某些实体确实包含的功能。
****接口的出现降低了耦合性,增强了功能的扩展性,提供了规则;多态的应用增强了程序的扩展性。 |