java8中的新特性之一,我们可以在interface中添加默认的方法实现 通过关键字default我们可以在interface中添加默认的方法实现。

众所周知,我们也知道abstract类中也可以有non-abstract methods 即非抽象方法,那么添加了默认实现方法的interface和abstract区别,也就是说,以后我们设计类与类之间的关系时如何抉择?
java支持单继承,多实现。只能继承一个类,但可以实现多个接口
interface中的方法都是public abstract ,属性都是public static final
2)设计层面不同,抽象类作为很多子类的父类,它是一种模板式设计。而接口是一种行为规范,它是一种辐射式设计。什么是模板式设计?最简单例子,大家都用过ppt里面的模板,如果用模板A设计了ppt B和ppt C,ppt B和ppt C公共的部分就是模板A了,如果它们的公共部分需要改动,则只需要改动模板A就可以了,不需要重新对ppt B和ppt C进行改动。而辐射式设计,比如某个电梯都装了某种报警器,一旦要更新报警器,就必须全部更新。也就是说对于抽象类,如果需要添加新的方法,可以直接在抽象类中添加具体的实现,子类可以不进行变更;而对于接口则不行,如果接口进行了变更,则所有实现这个接口的类都必须进行相应的改动。
一周热门 更多>