C#中new和override的差別小我總結。本站提示廣大學習愛好者:(C#中new和override的差別小我總結)文章只能為提供參考,不一定能成為您想要的結果。以下是C#中new和override的差別小我總結正文
成績:
A類 無方法 public virtual void test()
B類繼續自A類,無方法 public new void test()
以下實例化:
A a = new B();
a.test();
會挪用哪一個類中的TEST辦法,最好能具體給我說明一下好嗎?先感謝了!
答復:
假如你用override,則不管挪用的是A類照樣B類中的TEST(),體系都邑找到它本質類的TEST();
假如是用的New,則可以經由過程類型轉換挪用到基類的TEST();
上面是override的情形:
A a = new A();
B b = new B();
A a1=new B();
a.Test();//挪用A中Test();
b.Test();//挪用B中Test();
a1.Test();//挪用B中Test();體系會主動辨認a1是B的實例
((A)b).Test();//與下面雷同
上面是new的情形:
A a = new A();
B b = new B();
A a1=new B();
a.Test();//挪用A中Test();
b.Test();//挪用B中Test();
a1.Test();//挪用A中Test();
((A)b).Test();//與下面雷同