淺談Java 繼承接口同名函數(shù)問(wèn)題
在Java中如果一個(gè)類(lèi)同時(shí)繼承接口A與B,并且這兩個(gè)接口中具有同名方法,會(huì)怎么樣?
動(dòng)手做實(shí)驗(yàn):
interface A{ void fun();}interface B{ void fun();}interface C extends A,B{ }public class Test implements C{ @Override public void fun() { System.out.println('hehe'); } public static void main(String[] args) { new Test().fun(); }}
運(yùn)行截圖:
上例的情況,可以正常編譯運(yùn)行,輸出'hehe',因?yàn)锳與B中的fun具有相同的簽名(參數(shù)個(gè)數(shù)與類(lèi)型相同)
interface A{ void fun();}interface B{ int fun(int x);}interface C extends A,B{ }public class Test implements C{ @Override public void fun() { System.out.println('hehe1'); } @Override public int fun(int x) { return 0; } public static void main(String[] args) { new Test().fun(); }}
上例也是可以編譯運(yùn)行的,因?yàn)锳與B中的fun方法具有不同的函數(shù)簽名,本質(zhì)上是兩個(gè)方法,分別實(shí)現(xiàn)即可。
interface A{ void fun();}interface B{ int fun();}interface C extends A,B{ }public class Test implements C{ @Override public void fun() { System.out.println('hehe'); } public static void main(String[] args) { new Test().fun(); }}
而這種具有相同函數(shù)簽名,但不同返回值的方法,是沒(méi)有辦法編譯的,接口C便已經(jīng)無(wú)法編譯。
補(bǔ)充知識(shí):java 類(lèi)implements多個(gè)接口含有相同名字函數(shù)
java 類(lèi)不能多繼承 class A extends B,C{}是不允許的
但能實(shí)現(xiàn)多個(gè)接口 class A implements B,C{}是可以的,而多個(gè)接口中如果出現(xiàn)相同名字函數(shù):
interface in1{ public void fun1(); public void fun2();}interface in2{ public void fun1(); public void fun3();}
只許實(shí)現(xiàn)一個(gè)即可:
class fun implements in1,in2{ public void fun3() { // TODO Auto-generated method stub } public void fun1() { // TODO Auto-generated method stub } public void fun2() { // TODO Auto-generated method stub }}
以上這篇淺談Java 繼承接口同名函數(shù)問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. XML入門(mén)精解之結(jié)構(gòu)與語(yǔ)法2. html清除浮動(dòng)的6種方法示例3. CSS3實(shí)現(xiàn)動(dòng)態(tài)翻牌效果 仿百度貼吧3D翻牌一次動(dòng)畫(huà)特效4. 原生js XMLhttprequest請(qǐng)求onreadystatechange執(zhí)行兩次的解決5. 刪除docker里建立容器的操作方法6. msxml3.dll 錯(cuò)誤 800c0019 系統(tǒng)錯(cuò)誤:-2146697191解決方法7. asp在iis7報(bào)錯(cuò)行號(hào)不準(zhǔn)問(wèn)題的解決方法8. asp批量添加修改刪除操作示例代碼9. 三個(gè)不常見(jiàn)的 HTML5 實(shí)用新特性簡(jiǎn)介10. ASP中解決“對(duì)象關(guān)閉時(shí),不允許操作。”的詭異問(wèn)題……
