日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

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

發(fā)布時(shí)間:2025/3/20 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基础才是重中之重~方法override详解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

回到 目錄

之所以寫(xiě)這篇文章,完全是因?yàn)檫@次代碼審核,這次代碼審核過(guò)程當(dāng)中,出現(xiàn)了很多我認(rèn)為基礎(chǔ)知識(shí)不夠扎實(shí)的問(wèn)題,所以,打算把它們記錄下來(lái),共大家分享。

方法的override,即方法的覆寫(xiě)或者重寫(xiě),有時(shí)還是習(xí)慣叫它英文override,它是指將父類(lèi)的abstract或者virtual方法進(jìn)行重新設(shè)計(jì),可以將新的功能加入其中,看起來(lái)很不錯(cuò),但在使用過(guò)程中,有時(shí)我們可能拿不準(zhǔn)它,下面我說(shuō)幾點(diǎn):

一  父類(lèi)是抽象類(lèi),這時(shí),它的實(shí)例化需要通過(guò)子類(lèi)來(lái)完成,這時(shí)的override是子類(lèi)最后重寫(xiě)的

二  父類(lèi)是普通類(lèi),這時(shí),它的實(shí)例化工作如果由自己完成,結(jié)果就是父類(lèi)virtual的結(jié)果,與它的子類(lèi)無(wú)關(guān)。

三  父類(lèi)是普通類(lèi),它的實(shí)例化工作如果由子類(lèi)完成,那么,它的結(jié)果就是子類(lèi)方法override的結(jié)果

OK,下面我們來(lái)說(shuō)一下例子,它由father類(lèi)和sons類(lèi)組成,father類(lèi)是一個(gè)普通類(lèi),在這實(shí)現(xiàn)當(dāng)中,它很可能是個(gè)泛型類(lèi),如倉(cāng)儲(chǔ)模式的實(shí)現(xiàn)

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

下面是兒子A對(duì)爸爸的print方法的重寫(xiě)工作

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

而下面是對(duì)print方法的各種調(diào)用工作,包括了實(shí)現(xiàn)化的方式

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

OK,通過(guò)結(jié)果我們可以看出:

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

在兒子類(lèi)以外,使用爸爸自己去實(shí)例化后,print走的是爸爸的;使用兒子進(jìn)行實(shí)例化后,print方法走的是兒子重寫(xiě)后的;

回到 目錄

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。