C 中類的隱藏和重寫的區別

2021-05-01 09:35:50 字數 1361 閱讀 1341

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 如果乙個方法被子類...