java多重继承和java 8 接口默认方法

Java的class是不支持多重继承的,一个子类只能继承一个父类,(可以实现多个接口),原因就是为避免菱形继承问题(钻石问题),而interface可以继承多个interface,因为接口没有实现,不存在菱形继承问题。

Java 8 的新特性,接口方法可以有默认实现,如果接口A、B有同样默认方法,为避免菱形继承问题,当类同时实现A、B,或者当其它接口同时继承A、B时,就必须重写这个冲突的方法。

另外方法重写时加不加@Override并不影响运行效果,但是,

  • 加了@Override,当写错需要继承方法的方法名、返回类型或参数表时,IDE就会报错提示纠正。
  • 便于代码阅读,也算是代码规范。