所有栏目

java接口和抽象类的主要区别

作者:说教育

java接口和抽象类的主要区别包括接口使用关键字interface来定义,抽象类使用关键字abstract来定义;接口使用implements关键字定义其具体实现,java培训抽象类使用extends关键字实现继承。除以上两点以外还包括子类扩展的数量不同、属性访问控制符不同等等。

java接口和抽象类的主要区别:

1、定义关键字不同

接口使用关键字interface来定义,抽象类使用关键字abstract来定义。

3、继承或实现的关键字不同

接口使用implements关键字定义其具体实现,java培训抽象类使用extends关键字实现继承。

3、子类扩展的数量不同

接口的实现类可以有多个,而抽象类的子类,只能继承一个抽象类,在Java语言中,一个类只能继承一个父类(单继承),但可以实现多个接口。

4、属性访问控制符不同

接口中属性的访问控制符只能是public,接口中的属性默认是public static final修饰的。抽象类中的属性访问控制符无限制,可为任意控制符。

5、方法控制符不同

接口中方法的默认控制符是public,并且不能定义为其他控制符,抽象类中的方法控制符无限制,其中抽象方法不能使用private修饰。

6、方法实现不同

接口中普通方法不能有具体的方法实现,在JDK 8之后static和default方法必须有方法实现,static或default方法如果没有方法实现就会报错,而普通方法如果有方法实现就会报错。

抽象类中普通方法可以有方法实现,抽象方法不能有方法实现,抽象类中的普通方法如果没有方法实现就会报错,而抽象方法如果有方法实现则会报错。

7、静态代码块使用不同

接口中不能使用静态代码块,抽象类中可以使用静态代码块。

热点导航
教育资讯 知道问答 公考资讯 司法考试 建筑知识 工作范文 大学排名 报考专业 学习方法 句子美文 秒知回答 作业解答 精选答案 知途问学