日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

父类与子类间的隐藏与重写

發布時間:2025/3/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 父类与子类间的隐藏与重写 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

父類與子類間的隱藏與重寫例子(改寫一題面試題)


(1)隱藏
當分別位于父類和子類的兩個方法完全一樣時,調用哪個方法由對象變量的類型決定。

using System; public class A { public A() { Console.WriteLine("A"); } public virtual void Fun() { Console.WriteLine("A.Fun()"); } } public class B : A { public B() { Console.WriteLine("B"); } public new void Fun() { Console.WriteLine("B.Fun()"); } public static void Main() { A a = new A(); //A a.Fun(); //A.Fun(); B b = new B(); //A B 創建子類對象時,先調用父類構造函數,再調用子類構造函數 b.Fun(); //B.Fun(); a = b; a.Fun(); //A.Fun(); (a as B).Fun(); //B.Fun(); (a as A).Fun(); //A.Fun(); Console.ReadKey(); } }


(2)重寫
將父類方法定義為虛方法,子類重寫同名方法后,通過父類變量調用哪個方法由對象變量引用的真實對象決定,而與變量自身所屬的類型無關。

using System; public class A { public A() { Console.WriteLine("A"); } public virtual void Fun() { Console.WriteLine("A.Fun()"); } } public class B : A { public B() { Console.WriteLine("B"); } public override void Fun() { Console.WriteLine("B.Fun()"); } public static void Main() { A a = new A(); //A a.Fun(); //A.Fun(); B b = new B(); //A B b.Fun(); //B.Fun(); a = b; a.Fun(); //B.Fun(); (a as B).Fun(); //B.Fun(); (a as A).Fun(); //B.Fun(); Console.ReadKey(); } } ?

轉載于:https://www.cnblogs.com/gdjlc/archive/2009/12/12/2086938.html

總結

以上是生活随笔為你收集整理的父类与子类间的隐藏与重写的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。