抽象类和接口都位于继承树的上层,它们具有以下相同点:
代表系统的抽象层;
当一个系统使用一棵继承树上的类时,应该尽可能地把引用变量声明为继承树的上层抽象类型,这样可以提高两个系统之间的松耦合。
都不能被实例化;
都能包含抽象方法。这些抽象方法用于描述系统能提供哪些服务,但不必提供具体的实现。
抽象类与接口主要有两大区别:
(1)在抽象类中可以为部分方法提供默认的实现,从而避免在子类中重复实现它们,提高代码的可重用性,这是抽象类的优势所在;而接口中只能包含抽象方法。
扩展功能时,在抽象父类中加入具体方法不会影响子类;但在接口中加入抽象方法会影响到所有实现类。
(2)一个类只能继承一个直接的父类,这个父类有可能是抽象类;但一个类可以实现多个接口,这是接口的优势所在。
posted on 2006-11-29 00:40
EricWong 阅读(208)
评论(0) 编辑 收藏 所属分类:
Java