【Java基础】抽象类和接口的区别
2013-01-04 00:00
351 查看
相同点:
1、都不能被实例化;
2、都包含抽象方法,这些抽象方法用于描述系统能提供哪些服务,但不提供具体的实现。
不同点:
1、在抽象类中可以为部分方法提供默认的实现,从而避免在子类中重复实现它们,这是抽象类的优势,但这一优势限制了多继承,而接口中只能包含抽象方法。由于在抽象类中允许加入具体方法,因此扩展抽象类的功能,即向抽象类中添加具体方法,不会对它的子类造成影响,而对于接口,一旦接口被公布,就必须非常稳定,因为随意在接口中添加抽象方法,会影响到所有的实现类,这些实现类要么实现新增的抽象方法,要么声明为抽象类。
2、 一个类只能继承一个直接的父类,这个父类可能是抽象类,但一个类可以实现多个接口,这是接口的优势,但这一优势是以不允许为任何方法提供实现作为代价。
3、抽象类使用的是extends关键字,表示一个类只能继承一个父类,但是接口使用的是implements,一个类可以同时实现多个接口,但是此时子类就必须同时覆写好多个接口中的抽象方法。
1、都不能被实例化;
2、都包含抽象方法,这些抽象方法用于描述系统能提供哪些服务,但不提供具体的实现。
不同点:
1、在抽象类中可以为部分方法提供默认的实现,从而避免在子类中重复实现它们,这是抽象类的优势,但这一优势限制了多继承,而接口中只能包含抽象方法。由于在抽象类中允许加入具体方法,因此扩展抽象类的功能,即向抽象类中添加具体方法,不会对它的子类造成影响,而对于接口,一旦接口被公布,就必须非常稳定,因为随意在接口中添加抽象方法,会影响到所有的实现类,这些实现类要么实现新增的抽象方法,要么声明为抽象类。
2、 一个类只能继承一个直接的父类,这个父类可能是抽象类,但一个类可以实现多个接口,这是接口的优势,但这一优势是以不允许为任何方法提供实现作为代价。
3、抽象类使用的是extends关键字,表示一个类只能继承一个父类,但是接口使用的是implements,一个类可以同时实现多个接口,但是此时子类就必须同时覆写好多个接口中的抽象方法。
相关文章推荐
- Java基础(一):抽象类与接口的区别
- java基础知识回顾之抽象类和接口的区别
- 黑马程序员——Java基础---抽象类和接口的区别
- JAVA基础(1) -- 抽象类与接口的区别
- 黑马程序员——Java基础--接口和抽象类的区别
- 安卓开发基础新手必知java知识之接口与抽象类的区别
- Java基础学习之——接口的作用和抽象类的区别
- java基础之接口与抽象类的区别
- Java基础知识强化18:抽象类、接口的区别 和 抽象类可以不实现接口的全部方法
- 2.35 Java基础总结①抽象②接口③设计抽象类和接口的原则④接口和抽象类的区别
- java基础之接口(抽象类与接口的区别)
- java基础抽象类和接口区别
- Java基础--抽象类和接口的区别
- java基础之接口(抽象类与接口的区别)
- Java基础面试题一:请说说抽象类和接口的区别?
- java基础—抽象类和接口的区别
- java 基础----抽象类与接口的区别,知道区别才能准备的应用
- java基础知识—JAVA中抽象类和接口的区别
- java基础-抽象类和接口的区别
- JAVA基础--接口的概念、分类及与抽象类的区别