重寫:子類重寫基類的虛函數,使不同的子類以不同的方式實現相同的功能。比如定義壹個鳥基類,在基類中定義壹個會飛的虛函數,實現燕子和蜂鳥的子類。很明顯,燕子和蜂鳥的飛行模式不壹樣,所以可以重寫。
隱藏:如果壹個子類用單詞new定義了壹個字段、屬性或函數,那麽該子類的字段、屬性或函數隱藏了基類的同名字段、屬性或函數。
您可以在VS中運行以下代碼,通過查看輸出來加深理解:
公?班級?基礎班?{
///?& lt總結& gt
///?重載函數1
///?& lt/summary & gt;
///?& ltreturns & gt& lt/returns & gt;
公?字符串?GetString()?{
回歸?“我是重載函數1”;
}
///?& lt總結& gt
///?重載函數2
///?& lt/summary & gt;
///?& ltparam?name = " obj " & gt& lt/param & gt;
///?& ltreturns & gt& lt/returns & gt;
公?字符串?GetString(對象?obj)?{
回歸?“我是重載函數2”;
}
///?& lt總結& gt
///?要重寫的函數
///?& lt/summary & gt;
公?虛擬的?字符串?OverideFunction()?{
回歸?”我是要被覆蓋的基類的函數”;
}
///?& lt總結& gt
///?隱藏功能
///?& lt/summary & gt;
///?& ltreturns & gt& lt/returns & gt;
公?字符串?HideFunction()?{
回歸?“我是基類的隱藏函數”;
}
}
公?班級?ChildClass?:?基礎班?{
///?& lt總結& gt
///?子類重寫功能
///?& lt/summary & gt;
///?& ltreturns & gt& lt/returns & gt;
公?覆蓋?字符串?OverideFunction()?{
回歸?“我是子類重寫的函數”;
}
///?& lt總結& gt
///?隱藏基類函數
///?& lt/summary & gt;
///?& ltreturns & gt& lt/returns & gt;
公?新的?字符串?HideFunction()?{
回歸?“我是子類函數,我隱藏了基類HideFunction”;
}
}
靜電?作廢?Main(string[]?args)?{
ChildClass?孩子?=?新的?child class();
控制臺。WriteLine("ChildClass。GetString():?"?+?孩子。GetString());
控制臺。WriteLine("ChildClass。GetString(對象?obj):?”?+?孩子。GetString(新?object()));
控制臺。WriteLine("ChildClass。OverideFunction():?"?+?孩子。OverideFunction());
控制臺。WriteLine("ChildClass。HideFunction():?"?+?孩子。hide function());
基礎班?基礎班?=?孩子?作為?基類;
控制臺。WriteLine("BaseClass。OverideFunction():?"?+?基類。OverideFunction());
控制臺。WriteLine("BaseClass。HideFunction():?"?+?基類。hide function());
基礎班?=?新的?base class();
控制臺。WriteLine("BaseClass。OverideFunction():?"?+?基類。OverideFunction());
}