Dart 中 super 关键字的作用是什么?

推荐答案

在 Dart 中,super 关键字用于引用当前类的父类。它主要有以下两个用途:

  1. 调用父类的构造函数:在子类的构造函数中,可以使用 super 来调用父类的构造函数,通常用于初始化父类的成员变量。
  2. 调用父类的方法:在子类中,可以使用 super 来调用父类的方法,通常用于在子类中扩展或覆盖父类方法时,保留父类的行为。

本题详细解读

1. 调用父类的构造函数

在 Dart 中,子类的构造函数可以通过 super 关键字调用父类的构造函数。这在子类需要初始化父类的成员变量时非常有用。

-- -------------------- ---- -------
----- ------ -
  ------ -----

  ------------------
-

----- --- ------- ------ -
  ------ ------

  ---------- ----- ----------- - ------------
-

在上面的例子中,Dog 类继承自 Animal 类。Dog 的构造函数通过 super(name) 调用了 Animal 的构造函数,从而初始化了 Animal 类的 name 成员变量。

2. 调用父类的方法

在子类中,可以使用 super 关键字调用父类的方法。这在子类覆盖父类方法时非常有用,可以在子类的方法中保留父类的行为。

-- -------------------- ---- -------
----- ------ -
  ---- ----------- -
    ------------- ----- - --------
  -
-

----- --- ------- ------ -
  ---------
  ---- ----------- -
    ------------------ -- ----- --------- --
    ---------- --------
  -
-

在上面的例子中,Dog 类覆盖了 Animal 类的 makeSound 方法。在 DogmakeSound 方法中,通过 super.makeSound() 调用了父类的 makeSound 方法,从而保留了父类的行为,并在此基础上添加了新的行为。

总结

super 关键字在 Dart 中主要用于与父类的交互,包括调用父类的构造函数和方法。通过 super,子类可以继承和扩展父类的行为,同时保持代码的清晰和可维护性。

纠错
反馈