Csharp多態的實現(抽象類)


1.什么是抽象類

抽象類是虛擬的類,不能創建對象,用abstract修飾,在子類中用override進行重寫

抽象類中可以存放抽象方法,屬性,也可以存放非抽象方法,屬性(這個在下面的代碼可以看出來的)

非抽象類中只能存放非抽象的方法(這個可以在下面的代碼中可以看出類)

如果子類也是抽象類,那么父類中所有的抽象方法,屬性不必全部實現; 如果子類不是抽象類,那么父類中所有的抽象方法,屬性必須全部實現(如果不實現會報錯,這個也可以觀察出來)

2.下面來看一下代碼的實現,來點干的

//先定義一個Car父類
abstract class  Car
    {
        private string _name;//用private修飾的,只能在父類中使用
        public  string name//可以再子類中繼承使用
        {
            get
            {
                return _name; 
            }
            set
            {
                _name = value;
            }
        }
        public abstract void say();//抽象方法,必須在子類中重寫
        public  void start()//可以再子類中繼承使用
        {
            Console.WriteLine("我是一輛車,我現在啟動了");
        }
      }

//定義一個Benz類,繼承Car
  class Benz:Car
    {
        public override  void say()//在子類中重寫
        {
            Console.WriteLine("我是大奔,我叫{0}",name);
        }   
    }

//定義一個BMW類,繼承Car
 class BMW:Car
    {
        public override void say()//在子類中重寫
        {
            Console.WriteLine("我是寶馬,我叫{0}",name);
        }
    }

3.如果使用多態   

定義一個父類的變量 Car b = new Benz();
b = new BMW();

先裝的是奔馳類,后來裝的是寶馬類,裝那個類,表現出那個類的特征,這就是多態

3.1  一個父類可以裝不同的子類,從而實現不同的形態

3.2  當一個父類被多個類繼承的時候,子類中的方法很多,而父類中的方法無法確定的時候,在父類定義個抽象方法,然后在子類中實現就可以了,在使用多態的時候,也可以直接使用

 

Csharp多態的實現概述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM