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.