抽象类可以有default吗(java中的抽象类与接口有什么异同)

本文目录
java中的抽象类与接口有什么异同
相同点:
(1)都不能被实例化
(2)接口的实现类或抽象类的子类都只有实现了接口或抽象类中的方法后才能实例化。
不同点:
(1)接口只有定义,不能有方法的实现,java 1.8中可以定义default方法体,而抽象类可以有定义与实现,方法可在抽象类中实现。
(2)实现接口的关键字为implements,继承抽象类的关键字为extends。一个类可以实现多个接口,但一个类只能继承一个抽象类。所以,使用接口可以间接地实现多重继承。
(3)接口强调特定功能的实现,而抽象类强调所属关系。
(4)接口成员变量默认为public static final,必须赋初值,不能被修改;其所有的成员方法都是public、abstract的。抽象类中成员变量默认default,可在子类中被重新定义,也可被重新赋值;抽象方法被abstract修饰,不能被private、static、synchronized和native等修饰,必须以分号结尾,不带花括号。
(5)接口被用于常用的功能,便于日后维护和添加删除,而抽象类更倾向于充当公共类的角色,不适用于日后重新对立面的代码修改。功能需要累积时用抽象类,不需要累积时用接口。
虚类的Java的接口和C++的虚类的相同和不同处
c++虚类相当与java里面的抽象类,与接口的不同之处如下:
1、一个子类只能继承一个抽象类(虚类),但能实现多个接口;
2、一个抽象类可以有构造方法,接口没有构造方法;
3、一个抽象类中的方法不一定是抽象方法,即其中的方法可以有实现(有方法体),接口中的方法都是抽象方法,不能有方法体,只有声明;
4、一个抽象类可以是public、private、protected、default, 接口只有public和default;
5、一个抽象类中的方法可以是public、private、protected、default, 接口中的方法只能是public。
相同之处:都不能实例化。

更多文章:
misunderstand用法(understand的反义词)
2025年12月9日 00:45
excel中四舍五入取整数(如何在excel表格中进行四舍五入取整呢)
2026年2月7日 19:00
ueditor表格默认属性修改(百度编辑器 Ueditor 初始内容默认 怎么做)
2026年8月21日 04:00
grouplayout布局详解(在java中GroupLayout这个布局管理器的中文名叫什么绝对布局又应该怎么设置)
2026年7月29日 22:30
linux图形化分区工具(请教Linux下图形化管理磁盘工具)
2025年12月2日 19:15
易语言写辅助容易被检测(易语言开发的软件都会被360提示为木马吗你怎么看)
2026年4月28日 12:30
社交英语communicate(communicate 这个英语怎么读)
2026年1月31日 10:30
dockerattach卡住(docker exec 和 docker attach的区别)
2026年2月15日 03:30
borderradius是什么标签(border-radius是css3新增属性吗)
2025年12月16日 23:15
android车载app开发(Android车载应用开发与分析(2) - 集成第三方APK)
2025年12月17日 22:00













