亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從具有相同方法名稱的多個接口繼承

從具有相同方法名稱的多個接口繼承

紅顏莎娜 2019-10-29 14:02:26
如果我們有一個從多個接口繼承的類,并且這些接口具有名稱相同的方法,那么如何在我的類中實現這些方法?我們如何指定實現哪個接口的方法?
查看完整描述

3 回答

?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

您可以實現明確一個接口和另一個implecitely。


public interface ITest {

    void Test();

}

public interface ITest2 {

    void Test();

}

public class Dual : ITest, ITest2

{

    public void Test() {

        Console.WriteLine("ITest.Test");

    }

    void ITest2.Test() {

        Console.WriteLine("ITest2.Test");

    }

}

ITest.Test將是默認實現。


Dual dual = new Dual();

dual.Test();

((ITest2)dual).Test();

輸出:


Console.WriteLine("ITest.Test");

Console.WriteLine("ITest2.Test");


查看完整回答
反對 回復 2019-10-29
?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

通過顯式實現接口,如下所示:


public interface ITest {

    void Test();

}

public interface ITest2 {

    void Test();

}

public class Dual : ITest, ITest2

{

    void ITest.Test() {

        Console.WriteLine("ITest.Test");

    }

    void ITest2.Test() {

        Console.WriteLine("ITest2.Test");

    }

}

使用顯式接口實現時,這些函數在類上不是公共的。因此,為了訪問這些功能,必須首先將對象轉換為接口類型,或將其分配給聲明為接口類型的變量。


var dual = new Dual();

// Call the ITest.Test() function by first assigning to an explicitly typed variable

ITest test = dual;

test.Test();

// Call the ITest2.Test() function by using a type cast.

((ITest2)dual).Test();


查看完整回答
反對 回復 2019-10-29
  • 3 回答
  • 0 關注
  • 777 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號