Interface
interface的设计初衷是面向抽象,提高扩展性。
在java8之前,修改interface修改的时候,实现它的类也必须跟着修改,为了解决这个问题,java8之后,新的interface的方法可以用default或者static修饰,这样接口就可以有方法体了,实现类也不必重写此方法。
一个 interface 中可以有多个方法被它们修饰,这 2 个修饰符的区别主要也是普通方法和静态方法的区别:
- default修饰的方法,是普通实例方法,可以用this调用,可以被子类继承、重写。
- static修饰的方法,使用上和一般类静态方法一样。但它不能被子类继承,只能用Interface调用。
在java8中,接口和抽象类的区别
- 接口多实现,类单继承。
- 接口的方法是用 public abstract 修饰,变量是用 public static final 修饰;抽象类可以用其他修饰符。