<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
        主站蜘蛛池模板: 亚洲电影免费观看| 亚洲男人的天堂在线播放| 亚洲精品伊人久久久久| 69堂人成无码免费视频果冻传媒| 国产精品亚洲аv无码播放| 在线观看免费播放av片| 亚洲av综合色区| 亚欧免费无码aⅴ在线观看| 亚洲AV无码1区2区久久| 在线免费观看亚洲| 亚洲一区中文字幕在线电影网| 57pao国产成视频免费播放| 亚洲国产成人资源在线软件| 妻子5免费完整高清电视| xxx毛茸茸的亚洲| 国产真人无遮挡作爱免费视频| 国产精品亚洲一区二区无码| 亚洲精品黄色视频在线观看免费资源| gogo免费在线观看| 亚洲av无码国产精品夜色午夜 | 亚洲欧美日韩综合俺去了| 亚洲人成电影网站免费| 亚洲av无码片vr一区二区三区| 又色又污又黄无遮挡的免费视| 看一级毛片免费观看视频| 亚洲精品乱码久久久久久自慰| 免费成人在线视频观看| 亚洲国产视频一区| 国产免费观看网站| 成人电影在线免费观看| 亚洲不卡在线观看| 国产成人亚洲综合无码| 120秒男女动态视频免费| 亚洲暴爽av人人爽日日碰| 亚洲伊人久久精品影院| 亚洲一区二区免费视频| 亚洲av永久中文无码精品| 亚洲精品国产精品乱码不卡√| 欧亚精品一区三区免费| 国产伦精品一区二区免费| 亚洲国产成人精品激情|