1. 程式人生 > 實用技巧 >C#關於介面的顯示實現介面

C#關於介面的顯示實現介面

介面interface

先回顧下介面的定義:介面語法與定義抽象類相同,但介面不允許提供任何成員的實現方法,也不能有建構函式、欄位和運算子過載,只允許包含方法成員(方法、屬性、索引器和事件的宣告)。

介面之間也可以繼承,繼承的介面可以新增屬於自己的方法,繼承介面的派生類需要實現介面內的所有方法

那麼問題來了,當一個類同時繼承了兩個介面且兩個介面內有相同名字的方法,如IGrammer3繼承自介面IGrammer1和介面IGrammer2,而IGrammer1IGrammer2內同時有方法void Fun1(),此時可以同時實現或者分別使用顯示實現介面來實現介面內的方法:

同時實現:

interface
IGrammer1 {void Fun1();} interface IGrammer2 {void Fun1();} class IGrammer3:IGrammer1,IGrammer2 { void Fun1() { Console.WriteLine(“此時是同時實現兩個介面的Fun1”); } }

這個時候呼叫類IGrammer3中的Fun1則直接使用父類或子類宣告的例項呼叫即可。

IGrammer3 g1 = new IGrammer3();

g1.Fun1();

顯示實現介面:

class IGrammer3:IGrammer1,IGrammer2

{

    
void IGrammer1.Fun1() { Console.WriteLine(“此時實現的是IGrammer1的Fun1”); } void IGrammer2.Fun1() { Console.WriteLine(“此時實現的是IGrammer2的Fun1”); } }

這個時候呼叫不同的方法需要用各自的父類介面進行宣告:

IGrammer1 g1 = new IGrammer3();

g1.Fun1();

IGrammer2 g2 = new IGrammer3();

g2.Fun1();