推荐答案
在 ECMAScript 中,可以通过 extends 关键字来实现类的继承。以下是一个简单的示例:
// www.javascriptcn.com code example
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} makes a noise.`);
}
}
class Dog extends Animal {
constructor(name, breed) {
super(name); // 调用父类的构造函数
this.breed = breed;
}
speak() {
console.log(`${this.name} barks.`);
}
}
const dog = new Dog('Rex', 'German Shepherd');
dog.speak(); // 输出: Rex barks.在这个示例中,Dog 类继承了 Animal 类,并且重写了 speak 方法。
本题详细解读
1. 使用 extends 关键字实现继承
extends 关键字用于创建一个类作为另一个类的子类。子类继承了父类的所有属性和方法。
class Dog extends Animal {
// ...
}2. 调用父类的构造函数
在子类的构造函数中,必须调用 super() 来调用父类的构造函数。super() 必须在 this 关键字之前调用,否则会抛出错误。
constructor(name, breed) {
super(name); // 调用父类的构造函数
this.breed = breed;
}3. 方法重写
子类可以重写父类的方法。在上面的示例中,Dog 类重写了 Animal 类的 speak 方法。
speak() {
console.log(`${this.name} barks.`);
}4. 实例化子类
通过 new 关键字可以实例化子类,并且可以调用子类和父类的方法。
const dog = new Dog('Rex', 'German Shepherd');
dog.speak(); // 输出: Rex barks.5. 继承链
子类不仅可以继承父类的属性和方法,还可以继承父类的原型链上的属性和方法。
console.log(dog instanceof Animal); // 输出: true console.log(dog instanceof Dog); // 输出: true
通过这种方式,ECMAScript 中的类继承机制使得代码更加模块化和可维护。