嘚儿驾...

方法冲突

​ 子类最多继承一个父类,但可以实现多个接口,

自 java 8 起,接口可以定义静态方法,也可以用 default 关键字实现方法逻辑。

问题来了,如果一个子类实现了多个接口,这些接口中都有相同签名的方法实现,子类调用方法时,会调用哪一个呢? 这就是方法冲突。

解决方案,如果发生了方法冲突,java 会调用优先级高的方法,那那些优先级高呢?

类的优先级比接口高,子类的优先级比父类高,说白了越具体的越优先,越抽象或者说是离本类越远的优先级越低。

但如果是相同的优先级,无法分出高低时,那本类就必须重写方法,来显式的选择方法的实现,

A.super.run()默认的语法,不用纠结!

posted @ 2022-04-07 18:52  走马!  阅读(51)  评论(0)    收藏  举报