c#的類有隱藏和重寫,兩個的作用其實都是為了實現子類的更改(我是這樣認為了),但之間又有區別,隱藏的方法,只能在子類中實現,而重寫的方法是可以在父類中得以實現.可能這樣說有點玄,舉個例子就可很容易說明:
類檔案中如下定義:
view plaincopy to clipboardprint?
public class mytestclass //父類
}
public class testclass1:mytestclass //隱藏子類
}
public class testclass2 : mytestclass //重寫子類
} public class mytestclass //父類
}public class testclass1:mytestclass //隱藏子類
}public class testclass2 : mytestclass //重寫子類
} 然後新增如下執行**:
static void main(string args)
static void main(string args)
出來的結果如下:
mytestclass
mytestclass2
mytestclass1
mytestclass2
很清楚,當從子類例項化乙個父類物件時,隱藏類是不會引影響父類的方法的,但重定就會,如果都是從子類例項化,則新物件都會以子類的新方法執行,也就是說在這種情況下兩者是沒有區別的,區別只是父類對像的繼承上.
如果要在子類中繼承父類的**,再新增**可以通過base關鍵字來實現
例如將上面的**改為
view plaincopy to clipboardprint?
public class mytestclass
}
public class testclass1:mytestclass
} public class mytestclass
}public class testclass1:mytestclass
} 執行**改為:
view plaincopy to clipboardprint?
static void main(string args)
static void main(string args)
執行結果如下:
mytestclass
mytestclass2
mytestclass
mytestclass1
mytestclass2
結果表名,無論是用哪種方法進行繼承,用base引用父類原**都可以.
c 隱藏和重寫基類方法的區別
c 隱藏和重寫基類方法的異同 最近正在學習c 對其中的方法重寫和隱藏的概念很是模糊,現在將其歸納如下 1 方法重寫 就是在基類中的方法用virtual關鍵字來標識,然後在繼承類中對該類進行重寫 override 這樣基類中的方法已經被重寫了,已經失去了功能了。當讓基類的物件的引用直接指向繼承類的物件...
c 隱藏過載和重寫的區別
基本概念 過載 是指同一可訪問區內被宣告的幾個具有不同引數列 引數的型別,個數,順序不同 的同名函式,根據引數列表確定呼叫哪個函式,過載不關心函式返回型別。示例 class a 隱藏 是指派生類的函式遮蔽了與其同名的基類函式,注意只要同名函式,不管引數列表是否相同,基類函式都會被隱藏。示例 incl...
c 隱藏基類方法和重寫基類方法的區別
最近重新學習c 中基礎,找到了隱藏基類方法和重寫基類方法的一點區別,二者都是在派生類中定義了與基類中相同的方法,相同點派生類物件將執行各自的派生類中的方法,不同點,在向上轉型後,重寫基類方法的呼叫的是派生類的方法,而隱藏基類呼叫的是基類的方法,具體實驗 class program 如果乙個方法被子類...