Dart 程式設計中的方法重寫


我們知道,我們可以透過使用 super 關鍵字或簡單地建立子類的物件來訪問超類中存在的方法。但是,在某些情況下,我們可能希望子類物件在使用子類物件呼叫時對相同方法執行不同的操作。我們可以透過在子類中再次定義相同名稱、相同引數和相同返回型別的方法來實現這一點,該方法與超類中存在的方法相同。

現在,當我們呼叫該方法時,將呼叫並執行子類中存在的方法,而不是超類中定義的方法。這個我們在子類中定義與超類中已存在的方法具有相同名稱、相同引數和相同返回型別的方法的過程稱為方法重寫。

方法重寫規則

  • 我們想要重寫的方法只能寫在子類中,不能寫在同一個類中。

  • 返回型別應與超類中存在的方法相同。

  • 引數列表應與超類中存在的方法相同。

  • 如果方法被宣告為靜態或 final,則我們不能重寫它。

  • 如果我們無法繼承方法,我們就無法重寫它。

示例

讓我們看一個 Dart 中方法重寫的示例。

考慮以下所示的示例:

 即時演示

class ParentClass {
   void displayName(){
      print("Inside the Parent class Method");
   }
}

class ChildClass extends ParentClass {
   void displayName(){
      print("Inside the Child class Method");
   }
}

void main(){
   ParentClass pClassObject = new ParentClass();
   ChildClass cClassObject = new ChildClass();
   pClassObject.displayName();
   cClassObject.displayName();
}

在上面的示例中,我們有兩個名為 ParentClass 和 ChildClass 的類,ParentClass 是超類,ChildClass 是繼承超類的子類,我們在兩個類中都聲明瞭一個名為 displayName 的方法,並且在 main 函式內部,當我們嘗試呼叫該方法時。

輸出

Inside the Parent class Method
Inside the Child class Method

更新於: 2021年5月21日

1K+ 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.