推荐答案
在 Dart 中,继承是通过 extends 关键字实现的。子类可以继承父类的属性和方法,并且可以通过 super 关键字调用父类的构造函数。
// www.javascriptcn.com code example
class Animal {
String name;
Animal(this.name);
void speak() {
print('$name makes a sound');
}
}
class Dog extends Animal {
Dog(String name) : super(name);
@override
void speak() {
print('$name barks');
}
}
void main() {
var dog = Dog('Buddy');
dog.speak(); // 输出: Buddy barks
}本题详细解读
1. 继承的基本语法
在 Dart 中,使用 extends 关键字来实现继承。子类继承父类的所有属性和方法,并且可以重写父类的方法。
class ChildClass extends ParentClass {
// 子类的属性和方法
}2. 调用父类构造函数
子类可以通过 super 关键字调用父类的构造函数。如果父类有命名构造函数,子类也可以通过 super.namedConstructor 来调用。
class ChildClass extends ParentClass {
ChildClass(someParam) : super(someParam);
}3. 方法重写
子类可以重写父类的方法,使用 @override 注解来明确表示这是一个重写的方法。
class ChildClass extends ParentClass {
@override
void someMethod() {
// 重写父类的方法
}
}4. 继承的限制
Dart 是单继承语言,一个类只能继承自一个父类。如果需要实现多重继承的效果,可以使用 mixin 或 implements。
5. 继承的用途
继承的主要用途是代码复用和扩展。通过继承,子类可以复用父类的代码,并且可以在子类中添加新的功能或修改现有功能。
6. 示例代码解析
在示例代码中,Dog 类继承自 Animal 类。Dog 类通过 super(name) 调用了 Animal 类的构造函数,并且重写了 speak 方法。在 main 函数中,创建了一个 Dog 对象并调用了 speak 方法,输出结果为 Buddy barks。