新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
比較C#new和override
C# new和override都會覆蓋父類中的方法。那它們兩者之前有什么區(qū)別呢?

成都創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、網(wǎng)站建設(shè)與策劃設(shè)計(jì),烏海海南網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:烏海海南等地區(qū)。烏海海南做網(wǎng)站價(jià)格咨詢:13518219792
override是指“覆蓋”,是指子類覆蓋了父類的方法。子類的對象無法再訪問父類中的該方法。new是指“隱藏”,是指子類隱藏了父類的方法,當(dāng)然,通過一定的轉(zhuǎn)換,可以在子類的對象中訪問父類的方法。所以說C# new和override的區(qū)別是覆蓋和隱藏
以下是代碼:
class=csharp name="code">class Base- {
- public virtual void F1()
- {
- Console.WriteLine("Base's virtual function F1");
- }
- public virtual void F2()
- {
- Console.WriteLine("Base's virtual fucntion F2");
- }
- }
- class Derived:Base
- {
- public override void F1()
- {
- Console.WriteLine("Derived's override function F1");
- }
- public new void F2()
- {
- Console.WriteLine("Derived's new function F2");
- }
- }
- class Program
- {
- public static void Main(string[] args)
- {
- Base b1 = new Derived();
- //由于子類覆蓋了父類的方法,因此這里調(diào)用的是子類的F1方法。也是OO中多態(tài)的體現(xiàn)
- b1.F1();
- //由于在子類中用new隱藏了父類的方法,因此這里是調(diào)用了隱藏的父類方法
- b1.F2();
- }
- }
以上介紹C# new和override的區(qū)別是覆蓋和隱藏。
當(dāng)前題目:比較C#new和override
標(biāo)題網(wǎng)址:http://m.fisionsoft.com.cn/article/dhjecde.html


咨詢
建站咨詢
