首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

基類與介面混合繼承的宣告問題(一)

     編輯:關於C語言

1. 問題初現

今天查看《介面繼承的宣告問題》回饋,發現 Ninputer 留下這道題:

如果有 class A : Interface1

那麼 class B : A, Interface1 和 class B : A 會出現什麼不同情況?編譯器在 IL 層級用什麼手段實現這功能?

2. 探索問題 & 理解問題

解決問題的過程是探索與推理論證過程。嘗試用反證法探索。首先假設 B 類別兩種繼承方式效果一樣,尋找不一樣。補全程式碼:

interface IC { }
class A : IC { }
class B1 : A { }
class B2 : A, IC { }
class Program
{
    static void Main()
    {
        A a = new A();
        B1 b1 = new B1();
        B2 b2 = new B2();
        Console.WriteLine(a is IC);
        Console.WriteLine(b1 is A);
        Console.WriteLine(b1 is IC);
        Console.WriteLine(b2 is A);
        Console.WriteLine(b2 is IC);
    }
}

執行結果:

True
True
True
True
True
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved