2011-09-17 76 views

回答

4

剛纔看了一下,記錄自己;-)

The C# Station Tutorial-Lesson 9: Polymorphism

base是你通常所說的基類中的方法,在Java中稱爲super如果我沒看錯的。

所以當你寫一個方法base.Name時,你會得到你的類繼承/派生的基類的Name屬性。

5

這是一種語言的關鍵字被用於指代基類,當前一個由(延伸)繼承的類。當您創建擴展另一個類的實例時,該實例也可以作爲基類來處理或使用。

虛擬

這意味着性質或功能可以在延伸類中重寫(類從基類定義性質或功能繼承)一種功能或性質改性劑。重寫函數或屬性必須與原始定義具有相同的簽名,但可以更改實現。虛擬函數或屬性必須立即在其定義的類中實現,而抽象方法或屬性僅在擴展類中實現。

倍率

用於指示就下面的功能或性質或延伸覆蓋從基類的等效功能或性質的編譯器的功能或性質改性劑。

2

base:在使用基本類型而不是當前類型定義的成員時使用。

virtual:方法和屬性可以是虛擬的,這意味着它們可以被更專門的類覆蓋。

override:當一個虛擬方法應該被一個新的實現在降序類中覆蓋時,你必須使用這個關鍵字而不是virtual

實施例:

class A { 
    public void X() {} 
    public virtual void Y() {} 
} 

class B: A { 
    public new void X() {} // defines a new method which does not override A.X 

    public override void Y() { // override A.Y with a new implementation 
    base.Y(); // calls the A.Y implementation 
    } 

    public virtual void Z() {} // additional virtual method on B 
} 

A a = new B(); 
a.X(); // calls A.X, not B.X 
a.Y(); // calls B.Y because it is virtual and overridden 
a.Z(); // syntax error - Z does not exist on an instance of type A