<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuān)題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題3
        問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        C# new和override的區(qū)別分析

        來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:41:38
        文檔

        C# new和override的區(qū)別分析

        C# new和override的區(qū)別分析:昨天面試問(wèn)到了new的幾種用法以及與Override的區(qū)別,有點(diǎn)模糊 回來(lái)google下,new的用法有以下3中 1、運(yùn)算符:初始化對(duì)象和調(diào)用構(gòu)造函數(shù) 2、修飾符:隱藏基類(lèi)方法 3、于在泛型聲明中約束可能用作類(lèi)型參數(shù)的參數(shù)的類(lèi)型 至于作為修飾符和override的區(qū)別
        推薦度:
        導(dǎo)讀C# new和override的區(qū)別分析:昨天面試問(wèn)到了new的幾種用法以及與Override的區(qū)別,有點(diǎn)模糊 回來(lái)google下,new的用法有以下3中 1、運(yùn)算符:初始化對(duì)象和調(diào)用構(gòu)造函數(shù) 2、修飾符:隱藏基類(lèi)方法 3、于在泛型聲明中約束可能用作類(lèi)型參數(shù)的參數(shù)的類(lèi)型 至于作為修飾符和override的區(qū)別

        昨天面試問(wèn)到了new的幾種用法以及與Override的區(qū)別,有點(diǎn)模糊

        回來(lái)google下,new的用法有以下3中

        1、運(yùn)算符:初始化對(duì)象和調(diào)用構(gòu)造函數(shù)

        2、修飾符:隱藏基類(lèi)方法

        3、于在泛型聲明中約束可能用作類(lèi)型參數(shù)的參數(shù)的類(lèi)型

        至于作為修飾符和override的區(qū)別,看了下文章不太明白,寫(xiě)了個(gè)例子,運(yùn)行結(jié)果,發(fā)現(xiàn)了差異,下面分享下代碼: 

        using System;
        using System.Collections.Generic;
        using System.Linq;
        using System.Text;
         
        namespace ConsoleApplication1
        {
         class Program
         {
         abstract public class Test
         {
         public virtual void Prinf()
         {
         Console.WriteLine("Abstract Printf...");
         }
         
         }
         public class Class1 : Test
         {
         public override void Prinf()
         {
         
         Console.WriteLine("Class One Override Printf...");
         }
         }
         public class Class2 : Test
         {
         public new void Prinf()
         {
         
         Console.WriteLine("Class Two New Printf...");
         }
         }
         
         static void Main(string[] args)
         {
         Class1 cls1 = new Class1();
         Class2 cls2 = new Class2();
         cls1.Prinf();
         cls2.Prinf();
         ((Test)cls1).Prinf();
         ((Test)cls2).Prinf();
         Console.ReadLine();
         }
         }
        }

        運(yùn)行結(jié)果如下:

        相信大家也看明白了,原來(lái)是這樣

        new隱藏基類(lèi)方法后,通過(guò)轉(zhuǎn)換為基類(lèi)型,仍然可以調(diào)用基類(lèi)的虛方法;

        而override則完全將基類(lèi)的方法進(jìn)行了重寫(xiě),即使將子類(lèi)型轉(zhuǎn)換為基類(lèi)型,調(diào)用的仍然是重寫(xiě)后的方法。。

        所以new 是隱藏基類(lèi)方法,而Override是重寫(xiě)基類(lèi)方法咯

        override是指“覆蓋”,是指子類(lèi)覆蓋了父類(lèi)的方法。子類(lèi)的對(duì)象無(wú)法再訪問(wèn)父類(lèi)中的該方法。new是指“隱藏”,是指子類(lèi)隱藏了父類(lèi)的方法,當(dāng)然,通過(guò)一定的轉(zhuǎn)換,可以在子類(lèi)的對(duì)象中訪問(wèn)父類(lèi)的方法。所以說(shuō)C# new和override的區(qū)別是覆蓋和隱藏

            以下是代碼:

        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();
        	//由于子類(lèi)覆蓋了父類(lèi)的方法,因此這里調(diào)用的是子類(lèi)的F1方法。也是OO中多態(tài)的體現(xiàn) 
        	b1.F1();
        	//由于在子類(lèi)中用new隱藏了父類(lèi)的方法,因此這里是調(diào)用了隱藏的父類(lèi)方法 
        	b1.F2();
        	}
        }

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        C# new和override的區(qū)別分析

        C# new和override的區(qū)別分析:昨天面試問(wèn)到了new的幾種用法以及與Override的區(qū)別,有點(diǎn)模糊 回來(lái)google下,new的用法有以下3中 1、運(yùn)算符:初始化對(duì)象和調(diào)用構(gòu)造函數(shù) 2、修飾符:隱藏基類(lèi)方法 3、于在泛型聲明中約束可能用作類(lèi)型參數(shù)的參數(shù)的類(lèi)型 至于作為修飾符和override的區(qū)別
        推薦度:
        標(biāo)簽: 的區(qū)別 new c#
        • 熱門(mén)焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門(mén)推薦

        專(zhuān)題
        Top
        主站蜘蛛池模板: 国产亚洲精品影视在线产品| 色吊丝最新永久免费观看网站 | 国产亚洲成av人片在线观看| 国产成人亚洲精品91专区高清| 韩国二级毛片免费播放| 亚洲av最新在线观看网址| 成人av免费电影| 亚洲av永久无码天堂网| 日本免费人成视频播放| 亚洲AV成人影视在线观看| 成人黄页网站免费观看大全| 亚洲字幕AV一区二区三区四区| 毛片免费视频观看| 亚洲美国产亚洲AV| 亚洲精品A在线观看| 国产99视频精品免费视频76| 国产成人综合亚洲AV第一页| 日本免费一区二区三区四区五六区| 亚洲av永久无码制服河南实里| 91大神免费观看| 亚洲一久久久久久久久| 亚洲AV无码一区二区三区在线观看| 成人a毛片视频免费看| 亚洲成AV人片在线观看无码| 中文字幕在线观看免费视频 | 一级看片免费视频| 久久丫精品国产亚洲av| 成人免费午夜无码视频| 国产成人亚洲精品91专区高清| 亚洲中久无码永久在线观看同 | 免费无码又爽又刺激高潮的视频| 老司机午夜精品视频在线观看免费| 国内精品久久久久久久亚洲| 无码A级毛片免费视频内谢| 美女视频黄免费亚洲| 亚洲一区视频在线播放| 99免费视频观看| 午夜在线亚洲男人午在线| 亚洲精品国产成人99久久| 日韩精品免费电影| 日韩电影免费在线观看|