程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> C# new和override的區別分析

C# new和override的區別分析

編輯:ASP.NET基礎

   override是指“覆蓋”,是指子類覆蓋了父類的方法。子類的對象無法再訪問父類中的該方法。new是指“隱藏”,是指子類隱藏了父類的方法,當然,通過一定的轉換,可以在子類的對象中訪問父類的方法。所以說C# new和override的區別是覆蓋和隱藏

    以下是代碼:

復制代碼 代碼如下:
<PRE 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(); 
//由於子類覆蓋了父類的方法,因此這裡調用的是子類的F1方法。也是OO中多態的體現 
b1.F1(); 
//由於在子類中用new隱藏了父類的方法,因此這裡是調用了隱藏的父類方法 
b1.F2(); 

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved