- 子类如果没有实现抽象父类中的所有抽象方法,则必须定义为abstract类型。
- 抽象类需要被继承才能使用,而被final修饰的类无法被继承,所以abstract和final是不能共存的。
- 接口(interface)可以说成是抽象类的一种特例,以前接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final,现在可以简写。JDK8 开始新加了接口默认方法,便于接口的扩展。默认方法使用 default 关键字,一个接口中可以有多个默认方法,可以重写也可以不写,看需要。接口中既可以定义抽象方法,又可以定义默认方法,默认方法不是抽象方法。子类实现接口的时候,可以直接调用接口中的默认方法,即继承了接口中的默认方法。接口中同时还可以定义静态方法,静态方法通过接口名调用。
- 接口可以继承接口,不需要实现抽象方法。
抽象类可以实现(implements)接口。 - 实现接口必须实现所有抽象方法
- Java8中加入了默认方法的接口,这不就是以前的抽象类吗?其实,两者还是有区别的。
一个类只能继承一个抽象类;但是一个类可以实现多个接口。
抽象类有实例变量,而接口只能有类变量,默认由static修饰
抽象类与接口的区别
最新推荐文章于 2021-02-26 23:27:15 发布