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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基础才是重中之重~方法override详解

發布時間:2025/3/20 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基础才是重中之重~方法override详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

回到 目錄

之所以寫這篇文章,完全是因為這次代碼審核,這次代碼審核過程當中,出現了很多我認為基礎知識不夠扎實的問題,所以,打算把它們記錄下來,共大家分享。

方法的override,即方法的覆寫或者重寫,有時還是習慣叫它英文override,它是指將父類的abstract或者virtual方法進行重新設計,可以將新的功能加入其中,看起來很不錯,但在使用過程中,有時我們可能拿不準它,下面我說幾點:

一  父類是抽象類,這時,它的實例化需要通過子類來完成,這時的override是子類最后重寫的

二  父類是普通類,這時,它的實例化工作如果由自己完成,結果就是父類virtual的結果,與它的子類無關。

三  父類是普通類,它的實例化工作如果由子類完成,那么,它的結果就是子類方法override的結果

OK,下面我們來說一下例子,它由father類和sons類組成,father類是一個普通類,在這實現當中,它很可能是個泛型類,如倉儲模式的實現

/// <summary>/// 一個爸爸/// </summary>class Father{public virtual void print(){Console.WriteLine("我是爸爸");}}

下面是兒子A對爸爸的print方法的重寫工作

/// <summary>/// 一個兒子A/// </summary>class SonA : Father{public override void print(){Console.WriteLine("我是兒子");//override father class print method. }public void sonPrint(){base.print(); //我是爸爸print();//我是兒子 }}

而下面是對print方法的各種調用工作,包括了實現化的方式

static void Main(string[] args){SonA son = new SonA();son.sonPrint(); //我是爸爸,我是兒子Father father = new Father();father.print();//我是爸爸Father son2 = new SonA();son2.print();//兒是兒子}

OK,通過結果我們可以看出:

在兒子類里,base.print()方法走的是爸爸的print;print走的是兒子

在兒子類以外,使用爸爸自己去實例化后,print走的是爸爸的;使用兒子進行實例化后,print方法走的是兒子重寫后的;

回到 目錄

總結

以上是生活随笔為你收集整理的基础才是重中之重~方法override详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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