淺談Java 繼承接口同名函數(shù)問(wèn)題
在Java中如果一個(gè)類同時(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ù)與類型相同)
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 類implements多個(gè)接口含有相同名字函數(shù)
java 類不能多繼承 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è)參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何將maven項(xiàng)目導(dǎo)出jar包(最簡(jiǎn)單方法)
大家都知道對(duì)于將maven項(xiàng)目導(dǎo)出jar包有好幾種方式,本文給大家分享一種方式最容易且最方便,感興趣的朋友跟隨小編一起看看吧2023-11-11
java中的Io(input與output)操作總結(jié)(四)
前面已經(jīng)把java io的主要操作講完了,這一節(jié)我們來(lái)說(shuō)說(shuō)關(guān)于java io的其他內(nèi)容:Serializable序列化/DataOutputStream和DataInputStream類/管道流等等,感興趣的朋友可以了解下2013-01-01
java方法重寫(xiě)時(shí)需要注意的問(wèn)題
大家好,本篇文章主要講的是java方法重寫(xiě)時(shí)需要注意的問(wèn)題,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12
Java類型轉(zhuǎn)換valueOf與parseInt區(qū)別探討解析
這篇文章主要為大家介紹了Java類型轉(zhuǎn)換valueOf與parseInt區(qū)別探討解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
Java Session驗(yàn)證碼案例代碼實(shí)例解析
這篇文章主要介紹了Java Session驗(yàn)證碼案例代碼實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
工廠方法模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了工廠方法模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理的相關(guān)資料,需要的朋友可以參考下2017-08-08

