程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#的虛函數解析機制(2)

C#的虛函數解析機制(2)

編輯:關於C語言

實踐部分

我定義了以下四個類:

類定義

public class A
{
  public virtual void Foo1()
  {
    Console.WriteLine("A.Foo1() was invoked.");
  }

  public void Foo2()
  {
    Console.WriteLine("A.Foo2() was invoked.");
  }
}

public class B : A
{
  public override void Foo1()
  {
    Console.WriteLine("B.Foo1() was invoked.");
  }

  public new virtual void Foo2()
  {
    Console.WriteLine("B.Foo2() was invoked");
  }
}

public class C : B
{
  public new void Foo1()
  {
    Console.WriteLine("C.Foo1() was invoked.");
  }
}

public class D : C
{
  public override sealed void Foo2()
  {
    Console.WriteLine("D.Foo2() was invoked.");
  }
}

當運行如下代碼時,會打印出什麼?

運行這些代碼

C aD = new D();
A aC = new C();

aD.Foo1();
aD.Foo2();
aC.Foo1();
aC.Foo2();

結果是:

打印出的結果C.Foo1() was invoked.
D.Foo2() was invoked.
B.Foo1() was invoked.
A.Foo2() was invoked.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved