6.虛擬和非虛擬函數
下面是一個非虛擬函數
Plane { TopSpeed() { Jet : Plane { TopSpeed() { Main(= ,plane.TopSpeed());
因為TopSpeed()是非虛擬的函數,上面的代碼將打印出300。為了修正這個問題,我們需要用virtual聲明這個方法,並且在子類中用override重寫它,如果不設置Jet()為override,結果依然是300,注意觀察下面的例子。
Plane { TopSpeed() { Jet : Plane { TopSpeed() { Main(= ,plane.TopSpeed());
7.隱藏繼承成員
在子類中,你可以重復使用變量名,但編譯器會提醒你,子類的成員是“隱藏”父類的變量。
Elephant { Weight = AsianElephant : Elephant { Weight = AsianElephant().Weight); }
如果你真想得到一個新的變量,那麼告訴編譯器將停止抱怨它,通過使用“new”修飾符(不被與“new”運算符混淆)。
AsianElephant : Elephant { Weight = ; }
8.重載運算符示例。注意,血多運算符必須重載為一對,如〉、〈
TopSpeed() { > one.TopSpeed() > < one.TopSpeed() < TopSpeed() { ToString() { Main(= = , plane >
9.重載參數
通常在編譯時根據聲明的類型參數來決定調用重載方法。即使“mamal”的對象是真正的Tiger型,編譯器將調用Mammal重載 - 除非它轉換為“dynamic”的類型,在這種情況下,它會調用此基礎上該方法真正的對象類型。
Main(= Zoo((dynamic) mammal);
10.使用屬性訪問器方法的例子。注意set和value變量的特殊用途。
mySpeed = { { mySpeed = Jet() { TopSpeed = Main(= =
11.輸出當前時間
DateTime dt =,dt.ToString());
要指定一個格式: dt.ToString("yyyy/MM/dd")
當前獨立的通用格式: dt.ToString("u")
將輸出 "yyyy'-'MM'-'dd HH':'mm':'ss'Z'"
12.寫入幾行文字到文件中
= StreamWriter((streamWriter !=