假设一个类,继承了父类并且实现了一个接口,然后父类和接口有一个同名的方法,那么此时会发生什么情况,编译会提示出错吗?如果不出错,那么这到底算是重写还是实现接口方法?
生活随笔
收集整理的這篇文章主要介紹了
假设一个类,继承了父类并且实现了一个接口,然后父类和接口有一个同名的方法,那么此时会发生什么情况,编译会提示出错吗?如果不出错,那么这到底算是重写还是实现接口方法?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
(本人總結,可能現在有記錯的地方,歡迎斧正):
(1)方法為靜態方法,接口不能有靜態方法,所以只能接口為非靜態方法,而父類為靜態方法,此時該類會編譯報錯,提示為靜態方法與接口的抽象方法沖突。
(2)父類和接口的方法均為非靜態方法時,該類可以定義同名的方法,但是算是重寫父類方法而不是實現接口的方法(原因也許是根據就近原則,父類關系較近)。
此時,如果調用該對象的該同名方法,則最終結果為調用最后一次重寫的方法。即如果該類重寫了該方法,那么調用該類的方法。如果該類沒有重寫,則向上
尋找父類,調用父類的實現方法。如果父類有更上級的父類均有該同名方法,則調用的為距離該類最近的父類的方法。
(1)方法為靜態方法,接口不能有靜態方法,所以只能接口為非靜態方法,而父類為靜態方法,此時該類會編譯報錯,提示為靜態方法與接口的抽象方法沖突。
(2)父類和接口的方法均為非靜態方法時,該類可以定義同名的方法,但是算是重寫父類方法而不是實現接口的方法(原因也許是根據就近原則,父類關系較近)。
此時,如果調用該對象的該同名方法,則最終結果為調用最后一次重寫的方法。即如果該類重寫了該方法,那么調用該類的方法。如果該類沒有重寫,則向上
尋找父類,調用父類的實現方法。如果父類有更上級的父類均有該同名方法,則調用的為距離該類最近的父類的方法。
總結
以上是生活随笔為你收集整理的假设一个类,继承了父类并且实现了一个接口,然后父类和接口有一个同名的方法,那么此时会发生什么情况,编译会提示出错吗?如果不出错,那么这到底算是重写还是实现接口方法?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2017-2018-1 Java演绎法
- 下一篇: 上班族社保详解