方法冲突
子类最多继承一个父类,但可以实现多个接口,
自 java 8 起,接口可以定义静态方法,也可以用 default 关键字实现方法逻辑。
问题来了,如果一个子类实现了多个接口,这些接口中都有相同签名的方法实现,子类调用方法时,会调用哪一个呢? 这就是方法冲突。
解决方案,如果发生了方法冲突,java 会调用优先级高的方法,那那些优先级高呢?
类的优先级比接口高,子类的优先级比父类高,说白了越具体的越优先,越抽象或者说是离本类越远的优先级越低。
但如果是相同的优先级,无法分出高低时,那本类就必须重写方法,来显式的选择方法的实现,
A.super.run()默认的语法,不用纠结!
本文来自博客园,作者:走马!,转载请注明原文链接:https://www.cnblogs.com/zou-ma/p/16113752.html

浙公网安备 33010602011771号