抽象类:
Java中有一个关键字:abstract,可以用于修饰类、成员方法


注意事项:
1、抽象类中不一定要有抽象方法,有抽象方法的类必须是抽象类
2、类中有的成员:成员变量、方法、构造器、抽象类都可以有
3、抽象类不能创建对象,仅作为一种特殊的父类,让子类继承并实现
4、一个类继承抽象类,必须重写父类中的所有抽象方法,否则这个类也必须定义成抽象类
使用抽象类的好处:父类知道子类都要做某个行为,但每个子类要做的情况不一样,父类就定义为抽象方法,交给子类去重写。
我们设计这样的抽象类,就是为了更好地支持多态
注意:抽象方法不能有方法体
接口:
接口可以看做一个特殊的抽象类
jdk8之前 接口里面只能定义常量和抽象方法
注意:
接口中定义常量时可以省略public static final,默认会加上去
接口中定义抽象方法可以省略public abstract,默认会加上去
与抽象类类似,接口不能创建对象
接口是用来被类实现(implement)的,实现接口的类成为实现类,一个类可以同时实现多个接口
接口的好处:
弥补了类单继承的不足,一个类可以同时实现多个接口,使类的角色更多,功能更强大
让程序可以面向接口编程,可以更灵活方便地切换各种业务实现,更利于解耦合
一个类可以同时继承一个类,实现多个接口
class Student extends People implements Driver, Boyfriend { }
jdk8之后,接口新增了三种形式的方法
默认方法:必须加default关键字修饰(默认为public),使得可以在接口内定义实体函数,要用接口的实现类的对象来调用
私有方法(jdk9开始支持):用private关键字修饰,在接口内定义实体函数,要用接口内其他的实体方法来调用,不能在接口外调用
静态方法:用static关键字修饰(默认为public),在接口内定义实体函数,只能使用当前接口名来调用
接口的注意事项:
1.接口与接口可以多继承:一个接口可以同时继承多个接口(接口继承时用extends)
2.一个接口继承多个接口,如果多个接口中存在方法签名冲突(方法名和参数列表完全一样,返回值不一样),则此时不支持多继承,也不支持多实现
3.一个类继承了父类,又同时实现了接口,如果父类中和接口中有同名的默认方法,实现器会优先用父类的
4.一个类实现了多个接口,如果多个接口中存在同名的默认方法,可以不冲突,这个类重写该方法即可
抽象类和接口的相同和不同:
相同:
1.都是抽象形式,都可以有抽象方法,都不能创建对象
2.都是派生子类形式,抽象类是被子类继承使用,接口是被实现类实现
3.一个类继承抽象类,或者实现接口,都必须重写完他们的抽象方法,否则自己要成为抽象类
4.都能支持多态,都能够实现解耦合
不同:
1.抽象类中可以定义类的全部普通成员,接口只能定义常量、抽象方法
2.抽象类只能被类单继承,接口可以被类多实现
网硕互联帮助中心

![基于SpringBoot的校园社团活动与经费管理系统[源码免费+文档免费]-网硕互联帮助中心](https://www.wsisp.com/helps/wp-content/uploads/2026/08/20260829151713-6a92f7f9e7c60-220x150.png)

评论前必须登录!
注册