Java学习(十三):抽象类和接口的区别,各自的优缺点
2015-05-10 19:14
309 查看
Java抽象类和接口的区别点
1、接口只能含有抽象的方法,抽象类中可以包含部分的实现方法。
2、接口只能定义静态常量,默认为public static final,并且需要显示初始化。抽象类中可以定义普通的成员变量。
3、接口不能含构造方法,抽象类可以有自己的构造方法(被继承使用)。
4、接口和抽象类都无法被实例化。
5、一个类可以实现多个接口,只能继承一个抽象类(只能继承一个类,单继承)
6、一个类实现接口时需要实现所有的方法。继承一个抽象类的时候需要实现所有抽象方法,否则同样需要声明为抽象类。(如果一个类含有抽象方法,则这个类必须被声明为抽象类)
7、如果向一个抽象类里加入一个新的具体方法时,它的所有子类都自动得到了这个新方法。如果向一个接口添加一个新的方法,则实现该接口的所有类就必须同步修改来实现这个方法,否则无法编译通过。
8、抽象类的实现只能由它的子类给出,而Java是单继承的,所以抽象类作为类型定义工具的效能大打折扣。任何实现一个接口的类都可以具有这个接口的类型,而一个类可以同时实现多个接口,从而这个类就有了多种类型。
1、接口只能含有抽象的方法,抽象类中可以包含部分的实现方法。
2、接口只能定义静态常量,默认为public static final,并且需要显示初始化。抽象类中可以定义普通的成员变量。
3、接口不能含构造方法,抽象类可以有自己的构造方法(被继承使用)。
4、接口和抽象类都无法被实例化。
5、一个类可以实现多个接口,只能继承一个抽象类(只能继承一个类,单继承)
6、一个类实现接口时需要实现所有的方法。继承一个抽象类的时候需要实现所有抽象方法,否则同样需要声明为抽象类。(如果一个类含有抽象方法,则这个类必须被声明为抽象类)
7、如果向一个抽象类里加入一个新的具体方法时,它的所有子类都自动得到了这个新方法。如果向一个接口添加一个新的方法,则实现该接口的所有类就必须同步修改来实现这个方法,否则无法编译通过。
8、抽象类的实现只能由它的子类给出,而Java是单继承的,所以抽象类作为类型定义工具的效能大打折扣。任何实现一个接口的类都可以具有这个接口的类型,而一个类可以同时实现多个接口,从而这个类就有了多种类型。
相关文章推荐
- C#两个知识点的补充 string与stringbuilder的区别以及深层机制 C#中接口与抽象类的比较以及各自适用的场景
- Java基础(8):面向对象—抽象类和接口的区别和各自特点
- Java中抽象类和接口的区别
- 接口与抽象类在使用上的区别
- 接口和抽象类的区别
- 接口和抽象类有什么区别
- PHP的抽象类、接口的区别和选择[转载]
- 接口和抽象类的区别
- 接口(interface)和抽象类(abstract class)的区别
- 抽象类与接口的区别 - [ Java 接口 抽象类 ]
- 抽象类与接口的区别 (转自老毕)
- 抽象类与接口的区别及应用
- java中接口与抽象类的区别
- 详细解析Java中抽象类和接口的区别
- 接口与抽象类的区别(转)
- c#接口与抽象类的区别
- [转]java 接口与抽象类的区别
- 接口与抽象类的区别(转)
- 抽象类与接口的区别
- 接口和抽象类的区别 --相信你看完不会再混淆了