学习日记-类继承中的上下转换
生活随笔
收集整理的這篇文章主要介紹了
学习日记-类继承中的上下转换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
class MobbliePhone ???{ ???????public void Test() ???????{ ???????????Console.WriteLine("我是手機"); ???????????Console.ReadLine(); ???????} ???} ???class Iphone : MobbliePhone ???{ ???????public void Test2() ???????{ ???????????Console.WriteLine("我是蘋果"); ???????????Console.ReadLine(); ???????} ???} ???class Nokia : MobbliePhone ???{ ???????public void Test3() ???????{ ???????????Console.WriteLine("我是諾基亞"); ???????????Console.ReadLine(); ???????} ???} ???class Program ???{ ???????static void Main(string[] args) ???????{ ???????????Nokia[] nokia = new Nokia[2]; ???????????//nokia[0] =new Iphone();? 這是行不通的,因為同為子類的兩個類型不同 ??????????//所以需要用上向上轉換 ???????????MobbliePhone[] mobbliephone = new MobbliePhone[2]; ???????????mobbliephone[0] = new Nokia(); ???????????mobbliephone[1] = new Iphone(); ???????????//因為mobhliephone是MobbliePhone類型的一個引用,不論他指向哪個對象,都只能調用MobbilePhone里的方法 ???????????mobbliephone[0].Test(); //這樣可以 ???????????//mobhliephone[0].Test3(); 這樣就不行,盡管它指向了Nokia而且你知道他是個Nokia類型。 ???????????//這是需要用上向下轉換,用as關鍵字可以做到這點 ???????????if (mobbliephone[0] is Nokia)//用is關鍵字判斷指向的對象是否是Nokia ???????????{ ???????????????Nokia lumia520 = mobbliephone[0] as Nokia; //用as關鍵字來完成向下轉換 ???????????????lumia520.Test3(); ???????????????? ???????????} ???????} ???}
轉載于:https://www.cnblogs.com/AndyBlue/p/3222381.html
總結
以上是生活随笔為你收集整理的学习日记-类继承中的上下转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 本案例通过ArrayList集合来显示C
- 下一篇: Code Complete-13/7/2