您好,登錄后才能下訂單哦!
本篇內容介紹了“C#繼承與構造函數的調用實例”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
C#繼承構造函數的調用實例演示
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace test { class Program { static void Main(string[] args) { //***種情況 --C#繼承構造函數的調用A a = new B();//x=1,y=0 a.PrintFields();//x=1,y=-1 //因為構造B之前,先執行變量,y沒有明確賦值,默認為0。 //A構造函數調用的PrintFields方法在A類里是虛函數,它的實現是在B類, //所以執行B類的PrintFields方法,結果輸出。 //雖然繼續執行完B的構造函數,使y的值是-1.但結果之前已經輸出 //第二種情況 --C#繼承構造函數的調用B b = new B();//x=1,y=0 b.PrintFields();//x=1,y=-1 //因為構造B之前,先執行變量,y沒有明確賦值,默認為0。 //執行B的構造函數,因為B繼承A,所以先執行A的構造函數。// A構造函數調用的PrintFields方法在A類里是虛函數,它的實現是在B類, //所以執行B類的PrintFields方法,結果輸出。 //雖然繼續執行完B的構造函數,使y的值是-1.但結果之前已經輸出 //第三種情況 A c = new A(); c.PrintFields();//什么都不輸出 Console.ReadKey(); } } class A //C#繼承構造函數的調用{ public A() { PrintFields(); } public virtual void PrintFields() { } } class B : A { int x = 1; int y; public B() { y = -1; } public override void PrintFields() { Console.WriteLine("x={0},y={1}", x, y); } } }
C#繼承構造函數的調用的基本情況就向你介紹到這里,希望對你學習和掌握C#繼承構造函數的調用有所幫助。
“C#繼承與構造函數的調用實例”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。