国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

詳解C#用new和override來實現抽象類的重寫區別

2020-01-24 00:46:13
字體:
來源:轉載
供稿:網友

一,抽象的實現

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Virtualdemo{  class Program  {    static void Main(string[] args)    {//BClass A = new BClass(); 抽象類無法被實例      Class1 c = new Class1();      BClass c2 = c;      c2.MethodA();      c.MethodA();      c2.MethodB();      c.MethodB();      c2.MethodC();      c.MethodC();      Console.ReadKey();    }  }  abstract class BClass  //抽象類無法被實例  {    public virtual void MethodA() { Console.WriteLine("BClassA"); }    public virtual void MethodB() { Console.WriteLine("BClassB"); }    public virtual void MethodC() { Console.WriteLine("BClassC"); }  }  class Class1 : BClass  {    public void MethodA() { Console.WriteLine("MethodA"); }//如果一個虛函數 在子類中沒有通過override關鍵字,那么這個方法就沒有被重寫,而是被隱藏了    public override void MethodB() { Console.WriteLine("MethodB"); }    public override void MethodC() { base.MethodC(); }  }}

從上圖得出的結果是:

綜上:抽象類的虛方法需要被重寫,那問題來了重寫有兩種方式,new和override又有什么區別

二,new和override重寫的區別:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Virtualdemo{  class Program  {    static void Main(string[] args)    {      Teacher t = new Teacher();      Student stu = t;      stu.Exam();      stu.Say();      t.Say();      Console.ReadKey();    }  }  public abstract class Student  {    public virtual void Exam()    {      Console.WriteLine("學生都要考試");    }    public void Say()    {      Console.WriteLine("我是學生");    }  }  public class Teacher : Student  {    public override void Exam()    {      Console.WriteLine("老師不用考試");    }    //public override void Say() //報錯,提示沒有virtual,無法被重寫    //{    //  Console.WriteLine("我是老師");    //}    public new void Say()    {      Console.WriteLine("我是老師");    }  }}

結果顯示為:

綜上總結:

1、如果基類沒有定義虛方法,那子類只能使用new,而不能使用override

2、基類有沒有定義虛方法,子類都可以使用new

3、子類使用new并不叫重寫,而是子類新創建一個方法,只是新創建的這個方法剛好跟基類中的方法同名

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中江县| 郎溪县| 罗平县| 郑州市| 澄城县| 玛曲县| 花垣县| 从化市| 噶尔县| 南城县| 枞阳县| 通渭县| 永兴县| 祁阳县| 宁津县| 望江县| 阳江市| 来宾市| 噶尔县| 宝应县| 广宗县| 大庆市| 礼泉县| 鄂托克旗| 新安县| 扬州市| 邵东县| 连山| 太仆寺旗| 巴南区| 滦南县| 江孜县| 彩票| 禄劝| 桑日县| 农安县| 绿春县| 浦城县| 河北省| 兴义市| 武隆县|