浅析Java接口与抽象类的区别
2016-10-25 22:19
232 查看
Java中接口interface和抽象类abstract class很相近,从某种意义上说,接口可以看做“多重继承”。但是两者之间还是有很大的区别的。
接口中的方法一定均为抽象方法(public abstract),且接口中的成员变量只能是public static final类型的,接口不能有静态方法。抽象类中至少有一个抽象方法就可以了,而且抽象类中允许有各种类型的成员变量,也可以有静态方法。
接口是对行为的抽象,实现的是“has a”的关系;抽象类是对事物的抽象,实现的是“is a”的关系。
一个类可以实现多个接口,但是只能继承一个抽象类。
接口是一种辐射式设计,即一旦接口发生了变化,则所有实现这个接口的类都必须进行相应的改动。而抽象类则是一种模板式设计,对于抽象类来说,如果需要添加新的方法,可以直接在抽象类中添加具体的实现,不需要改变子类。
接口中的方法一定均为抽象方法(public abstract),且接口中的成员变量只能是public static final类型的,接口不能有静态方法。抽象类中至少有一个抽象方法就可以了,而且抽象类中允许有各种类型的成员变量,也可以有静态方法。
接口是对行为的抽象,实现的是“has a”的关系;抽象类是对事物的抽象,实现的是“is a”的关系。
一个类可以实现多个接口,但是只能继承一个抽象类。
接口是一种辐射式设计,即一旦接口发生了变化,则所有实现这个接口的类都必须进行相应的改动。而抽象类则是一种模板式设计,对于抽象类来说,如果需要添加新的方法,可以直接在抽象类中添加具体的实现,不需要改变子类。
相关文章推荐
- Java接口与抽象类区别
- java接口和抽象类的区别
- java接口(interface)与抽象类(abstract class)的区别
- 黑马程序员——java接口与抽象类的区别之缺省适配模式
- Java接口和抽象类的区别深入剖析
- java接口和抽象类的区别
- 浅谈Java接口和抽象类的区别
- 面试题-java接口和抽象类的区别
- 浅析php中抽象类和接口的概念以及区别
- java接口、接口、类、抽象类的区别
- java接口与抽象类的区别
- java接口和抽象类的区别
- Java接口与抽象类的区别,(貌似面试常常问到)
- java接口与抽象类的区别
- JAVA接口与抽象类的区别(部分转载)
- Java接口和抽象类的区别?(抽象类中可以定义变量)
- Java接口和抽象类的区别?(抽象类中可以定义变量)
- Java接口和抽象类有什么区别,什么时候用接口好,什么时候用抽象类好?
- java接口与抽象类区别
- 浅析php中抽象类和接口的概念以及区别[转]