好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > C# new和override的區別分析

C# new和override的區別分析

熱門標簽:申請400電話手續 合肥電銷外呼系統哪家公司做的好 蘋果手機凱立德地圖標注 玉林市機器人外呼系統哪家好 電話機器人軟件銷售工作 南陽外呼系統定制化 預測式外呼系統使用說明 百度ai地圖標注 同安公安400電話怎么申請流程

昨天面試問到了new的幾種用法以及與Override的區別,有點模糊

回來google下,new的用法有以下3中

1、運算符:初始化對象和調用構造函數

2、修飾符:隱藏基類方法

3、于在泛型聲明中約束可能用作類型參數的參數的類型

至于作為修飾符和override的區別,看了下文章不太明白,寫了個例子,運行結果,發現了差異,下面分享下代碼: 

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();
    }
  }
}

運行結果如下:

相信大家也看明白了,原來是這樣

new隱藏基類方法后,通過轉換為基類型,仍然可以調用基類的虛方法;

而override則完全將基類的方法進行了重寫,即使將子類型轉換為基類型,調用的仍然是重寫后的方法。。。

所以new 是隱藏基類方法,而Override是重寫基類方法咯

override是指“覆蓋”,是指子類覆蓋了父類的方法。子類的對象無法再訪問父類中的該方法。new是指“隱藏”,是指子類隱藏了父類的方法,當然,通過一定的轉換,可以在子類的對象中訪問父類的方法。所以說C# new和override的區別是覆蓋和隱藏

    以下是代碼:

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

您可能感興趣的文章:
  • c#中的interface abstract與virtual介紹
  • 深入理解C# abstract和virtual關鍵字
  • C#中abstract的用法詳解
  • 深入解析C#中的abstract抽象類
  • 深入理解C#中new、override、virtual關鍵字的區別
  • C#中Override關鍵字和New關鍵字的用法詳解
  • C#中Abstract 、Virtual和Override的使用及區別

標簽:臺州 揚州 南昌 南京 南京 海南 淄博 嘉興

巨人網絡通訊聲明:本文標題《C# new和override的區別分析》,本文關鍵詞  new,和,override,的,區別,分析,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《C# new和override的區別分析》相關的同類信息!
  • 本頁收集關于C# new和override的區別分析的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 中文国语毛片高清视频| 国产精品成人久久久久久久| 免费乱理伦片在线观看app| 英语老师没戴罩子让c| 极品撕开美女衣服| 短辣文合集| 91精品国产综合一区二区三区大 | 娇妻之欲海| 午夜精品久久久久久久99| 男女ktv卫生间激情视频| 日韩城人视频| 波多野结衣办公室奷情30分钟| 少妇与拘做受XXXXⅩXX| 日本中文字幕不卡在线一区二区 | 大乳美女极品尤物在线观看| 杨幂喝醉被c原视频在线观看| 精品人妻一91区二区三区久久嗨| 撞击着成熟美妇身体| 伊人网视频在线| 人妻激情综合久久久久 | 夜夜贪欢〈高H〉| 男人桶女人暴爽30分钟| 双乳被两个男人吸住小说| 艳母在线播放| 波多野结衣在线观看高清免费资源| 国产大尺度未删减老影片| 日韩成人中文字幕| 女教师的日记2未删减| 男女91视频| 久久久久亚洲精品911密乳Av| 精品成人无码亚洲AV大象影院| 小鸟视频在线播放免费观看| 好吊妞人成无码免费视频| 国产91单男3p在线观看| 91久久偷偷做嫩草影院| 与子敌伦刺激对白免费看| 中文字幕人妻一区二区三区| 日韩老女人| 亚洲精品成人久久久影院| MM131极品翘臀mm131美女图片 | 毛片一级做a爰片性色试看|