C#基礎知識——類的繼承

來源:互聯網
上載者:User

標籤:

繼承是C#的三大特性之一,它實現了多態性和代碼複用

 1     class Program 2     { 3         static void Main(string[] args) 4         { 5             ChinesePerson c1 = new ChinesePerson(); 6             c1.name = "任家萱"; 7             c1.SayMyName(); 8  9             //子類可以預設轉換為父類,所以子類可以用來執行個體化父類10             Person p1 = new ChinesePerson();11             p1.name = "田馥甄";12             p1.SayMyName();//這裡執行的是父類(Person)的SayMyName方法13 14             //將父類轉成子類需要強制轉換15             ChinesePerson c2 = (ChinesePerson)p1;16             c2.SayMyName();//這裡執行的是子類(ChinesePerson)的SayMyName方法17 18             //強制轉換的時候必須是有直接繼承關係才能完成強轉否則會出異常19             //object o1 = new object();20             //ChinesePerson t2 = (ChinesePerson)o1; //轉換失敗,出現異常21             //ChinesePerson t3 = o1 as ChinesePerson; //轉換失敗,結果的值是null22 23             //聲明的是父類,執行個體化是子類對象,則這個父類變數可以被強轉為子類對象24             Person p3 = new ChinesePerson();25             ChinesePerson c3 = (ChinesePerson)p3;26             ChinesePerson c4 = p3 as ChinesePerson;27             c3.name = "陳嘉樺";28             c3.SayMyName();29             c4.name = "張宇";30             c4.SayMyName();31 32             //聲明的是父類,執行個體化的是父類對象,則這個父類變數不能被強轉為子類對象33             //Person p2 = new Person();34             //ChinesePerson t2 = (ChinesePerson)o1; //轉換失敗,出現異常35             //ChinesePerson t3 = o1 as ChinesePerson; //轉換失敗,結果的值是null36 37             //錯誤,不能用父類執行個體化子類對象,等號左邊聲明子類變數,文法上可以按變數類型來”.”38             //出變數類型成員使用,但是訪問是在等號右邊堆空間進行的,堆空間父類沒有子類成員,39             //那麼根本就無法訪問40             //ChinesePerson p5 = new Person();41         }42 43         public class Person 44         {45             public string name;46             public void SayMyName() 47             {48                 Console.WriteLine("我叫" + name);49             }50         }51 52         public class ChinesePerson : Person 53         {54             public void SayMyName()55             {56                 Console.WriteLine("我叫" + name + ",我是中國人。");57             }58         }59 60     }
View Code

 

輸出結果:

 

C#基礎知識——類的繼承

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.