Java中抽象类和接口的区别
2017-07-20 13:43
253 查看
区别:
接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为 public abstract 类型,接口中的成员变量类型默认为 public static final (这里需要说一点,既然一个变量被final修饰了,那么这个变量就是一个常量!!!!!变量必须初始化成常量!!!!!)
语法区别:
抽象类可以有构造方法,接口中不能有构造方法。抽象类中可以有普通成员变量,接口中没有普通成员变量。
抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
抽象类中的抽象方法的访问类型可以是public,protected,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
抽象类中可以包含静态(static)方法,接口中不能包含静态(static)方法。
抽象类和接口中都可以包含静态成员变量(static),抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。
一个类只能继承一个抽象类,但是可以实现多个接口。
一个接口可以继承多个接口。
抽象类所体现的是一种继承关系,要想使得继承关系合理,父类和派生类之间必须存在”is-a”关系关系,即父类和派生类在概念本质上应该是相同的。对于接口则不然,并不要求接口的实现者和接口定义在概念本质上是一致的,仅仅是实现了接口定义的契约而已,是”like-a”的关系。
相关文章推荐
- Java中抽象类和接口的区别
- 详细解析Java中抽象类和接口的区别
- java里抽象类和接口的区别
- Java中抽象类和接口的区别
- 详细解析Java中抽象类和接口的区别
- 详细解析Java中抽象类和接口的区别(转自http://dev.yesky.com/436/7581936.shtml)
- 根据实例理解Java中的抽象类和接口,以及两者的区别
- Java中抽象类和接口的区别(来源一)
- 详细解析Java中抽象类和接口的区别[转]
- 4000 Java 学习—抽象类和接口的区别
- java 接口与抽象类的区别(转)
- Java 接口和抽象类区别
- JAVA中接口和抽象类的区别
- 重温Java中抽象类和接口的区别
- Java 抽象类和接口的区别(好长时间没看这种文章了)
- Java中接口和抽象类的区别
- Java中抽象类和接口的区别
- 详细解析Java中抽象类和接口的区别
- Java知多少(40)接口和抽象类的区别
- java中抽象类和接口的区别