淺談Java 繼承接口同名函數(shù)問題
在Java中如果一個類同時繼承接口A與B,并且這兩個接口中具有同名方法,會怎么樣?
動手做實(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ù)個數(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ì)上是兩個方法,分別實(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ù)簽名,但不同返回值的方法,是沒有辦法編譯的,接口C便已經(jīng)無法編譯。
補(bǔ)充知識:java 類implements多個接口含有相同名字函數(shù)
java 類不能多繼承 class A extends B,C{}是不允許的
但能實(shí)現(xiàn)多個接口 class A implements B,C{}是可以的,而多個接口中如果出現(xiàn)相同名字函數(shù):
interface in1{
public void fun1();
public void fun2();
}
interface in2{
public void fun1();
public void fun3();
}
只許實(shí)現(xiàn)一個即可:
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ù)問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java中Memcached的使用實(shí)例(包括與Spring整合)
這篇文章主要介紹了java中Memcached的使用實(shí)例(包括與Spring整合),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
Spring boot + LayIM + t-io 實(shí)現(xiàn)文件上傳、 監(jiān)聽用戶狀態(tài)的實(shí)例代碼
這篇文章主要介紹了Spring boot + LayIM + t-io 實(shí)現(xiàn)文件上傳、 監(jiān)聽用戶狀態(tài)的實(shí)例代碼,需要的朋友可以參考下2017-12-12
Spring boot如何集成kaptcha并生成驗(yàn)證碼
這篇文章主要介紹了Spring boot如何集成kaptcha并生成驗(yàn)證碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07
ElasticSearch不停機(jī)重建索引延伸思考及優(yōu)化詳解
這篇文章主要為大家介紹了ElasticSearch不停機(jī)重建索引延伸思考及優(yōu)化詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
基于java Springboot實(shí)現(xiàn)教務(wù)管理系統(tǒng)詳解
這篇文章主要介紹了Java 實(shí)現(xiàn)簡易教務(wù)管理系統(tǒng)的代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-08-08
SrpingDruid數(shù)據(jù)源加密數(shù)據(jù)庫密碼的示例代碼
本篇文章主要介紹了SrpingDruid數(shù)據(jù)源加密數(shù)據(jù)庫密碼的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10
基于MyBatis的parameterType傳入?yún)?shù)類型
這篇文章主要介紹了基于MyBatis的parameterType傳入?yún)?shù)類型,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09

