C#中的多態


一、首先理解一下什么叫多態:

        同一種操作作用於不同的對象,可以有不同的解釋,產生不同的執行結果,這就是多態性。舉一個形象的例子,在我們聽音樂會的時候,當指揮發出開始的信號,不同的樂器收到相同的信號,但是他們產生不同的行為:鋼琴發出的是鋼琴的聲音,小號發出的是小號的聲響。或者,如果把每個動物當成一個對象,那么他們都有一個方法叫做吃,但是他們卻產生不同的行為。

        如圖:

        

        二、多態的實現。

        在C#中,多態性通過派生類覆寫基類中的虛函數型方法來實現。那么怎樣編寫虛函數呢?

        基類的方法要加上關鍵字virtual后變成虛方法,才可以被重寫,從而實現面向對象最重要的特征——多態性,即基類可以使用派生類的方法。

 public class Animal  
{  
   public virtual void Eat()  
   {  
      Console.WriteLine("Eat something");  
    }  
} 
public class Cat : Animal  
{  
    public override void Eat()  
    {  //完全取代基類方法  
        Console.WriteLine("Eat small fishes!");  
    }  
}  
public class Dog : Animal  
{  
    public override void Eat()  
    {  //完全取代基類方法  
        Console.WriteLine("Eat small bones!");  
    }  
}  
static void Main(string[] args)   
{  
    Animal mycat = new Cat();  
    Animal mydog = new Dog();  
    mycat.Eat();  
    mydog.Eat();  
}  

         運行結果如下:

        


免責聲明!

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



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