日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#中new和override的区别

發布時間:2024/1/17 C# 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#中new和override的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
using System; //C#中new和override的區別 namespace Text {//在C#中,override和new都會覆蓋父類中的方法。那它們兩者之前有什么區別呢?//override是指“覆蓋”,是指子類覆蓋了父類的方法。子類的對象無法再訪問父類中的該方法。 //new是指“隱藏”,是指子類隱藏了父類的方法,當然,通過一定的轉換,可以在子類的對象中訪問父類的方法。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 EXE1{public static void Fun(){Base b1 = new Derived();//由于子類覆蓋了父類的方法,因此這里調用的是子類的F1方法。也是OO中多態的體現 b1.F1();//由于在子類中用new隱藏了父類的方法,因此這里是調用了隱藏的父類方法 b1.F2();}}//或者我們用以下的代碼更加容易明白: class EXE2{public static void Fun(){Derived b1 = new Derived();//由于子類覆蓋了父類的方法,因此這里調用的是子類的F1方法。也是OO中多態的體現 ((Base)b1).F1();//由于在子類中用new隱藏了父類的方法,因此這里是調用了隱藏的父類方法 ((Base)b1).F2();}}//以上兩個的輸出都為: //Derived's override function F1 //Base's virtual fucntion F2 //在上面的例子中,由于F1覆蓋(override)了原先的方法,//因此即使轉成父類的對象,仍舊調用了子類的F1方法。//而由于子類的F2方法只是“隱藏”了父類的F2方法,//因此當強制轉換成父類(Base)的對象去調用F2方法時,//調用了原先隱藏的父類的F2方法。 }

轉載于:https://www.cnblogs.com/Sky-cloudless/archive/2012/07/05/2577472.html

總結

以上是生活随笔為你收集整理的C#中new和override的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。