日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

java同名函数_浅谈Java 继承接口同名函数问题

發(fā)布時(shí)間:2023/12/9 java 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java同名函数_浅谈Java 继承接口同名函数问题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在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è)參考,也希望大家多多支持云海天教程。

原文鏈接:https://blog.csdn.net/yurenfan/article/details/55803164

總結(jié)

以上是生活随笔為你收集整理的java同名函数_浅谈Java 继承接口同名函数问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。