1. 程式人生 > >深入理解多態 (1)

深入理解多態 (1)

之間 數據 override 擴展 結束 不同的 img over str

技術分享圖片
1.
1 public abstract class Birds{ 2 3 //什麽樣的方法是抽象方法 4 5 public abstract void Fly(); 6 7 8 }
技術分享圖片 技術分享圖片
     public class YZ:Birds{
  
      public override void Fly(){
  
       Console.WriteLine(".........");
    
  }
  
 } 
技術分享圖片

2.來解釋抽象方法是怎樣的

①如果一個類中用abstract修飾,該類是抽象類

②抽象類中可以有非抽象類方法

③抽象方法不能有方法體,連{}都能有,以分號結束

④如果一個類繼承抽象類,必需重寫抽象類中的所有抽象方法

⑤抽象方法必須位於抽象類中

⑥抽象類不能是靜態類或者是封裝類

⑦抽象類不能實例化

3.用虛方法實現多態的基本步驟如下:

①子類重寫父類的虛方法,其中有兩種方式.

創建父類對象,用子類對象實例化這個父類對象,

把父類類型作為形參類型,它的子類對象作為實參傳入

②運行時,根據實際創建對象的類型決定執行哪個方法

4.虛方法和抽象方法的區別

_ ______________________________|___________________________

虛方法 | 抽象方法

_______________________________ |____________________________

用virtual修飾 | 用abstract修飾

_______________________________ |______________________________

要有方法體,即使是一個分號 | 不允許有方法體

_______________________________ |______________________________

可以被子類override | 必須被子類override

_______________________________ | ________________________________

除了密封類外都可以被定義 | 只有在抽象類中定義

_______________________________ |________________________________

註:使用抽象方法和虛方法都可以實現多態性

5.面向對象編程中三個非常重要的特性---------封裝,繼承,多態

最後總結:

①封裝:保證對象自身數據的完整性和安全性

②繼承:建立類之間的關系,實現代碼復用,方便系統的擴展

③多態:相同方法的調用可實現不同的實現方式

6.裏式替換原則:

子類對象可以代替父類對象;反過來,父類對象不能代替子類對象

深入理解多態 (1)