推荐答案
在 TypeScript 中,类的继承是通过 extends
关键字来实现的。通过继承,子类可以继承父类的属性和方法,并且可以在子类中添加新的属性和方法,或者重写父类的方法。
-- -------------------- ---- ------- ----- ------ - ----- ------- ----------------- ------- - --------- - ----- - -------------- ------ - -- - ------------------------- ----- ---------------- - - ----- --- ------- ------ - ------ - ------------------ -------- - - ----- --- - --- ------------- ------------- -- --- ----- ----- ---- ----------- -- --- ----- -----
在这个例子中,Dog
类继承了 Animal
类,因此 Dog
类的实例可以访问 Animal
类的 move
方法,同时也可以定义自己的 bark
方法。
本题详细解读
1. extends
关键字的作用
extends
关键字用于创建一个类作为另一个类的子类。子类继承了父类的所有属性和方法,并且可以在此基础上进行扩展或修改。
2. 继承的语法
class ChildClass extends ParentClass { // 子类的属性和方法 }
ChildClass
是子类,ParentClass
是父类。- 子类可以访问父类的所有非私有(
private
)属性和方法。
3. 方法重写
子类可以重写父类的方法,即在子类中定义一个与父类同名的方法,这样子类的实例在调用该方法时会使用子类的实现。
class Cat extends Animal { move(distance: number = 5) { console.log(`${this.name} moved ${distance}m.`); } } const cat = new Cat('Whiskers'); cat.move(); // 输出: Whiskers moved 5m.
在这个例子中,Cat
类重写了 Animal
类的 move
方法,使得 Cat
类的实例在调用 move
方法时,默认移动距离为 5 米。
4. 调用父类的方法
在子类中,可以使用 super
关键字来调用父类的方法或构造函数。
-- -------------------- ---- ------- ----- ---- ------- ------ - ------------- ------- - ------------------------- ---- ---------------- --------------------- -- ----- ---- -- - - ----- ---- - --- --------------- ------------- -- --- ------ ---- ---- - ------ ----- ----
在这个例子中,Bird
类的 fly
方法调用了父类 Animal
的 move
方法。
5. 继承的限制
- TypeScript 不支持多重继承,即一个类不能同时继承多个类。
- 如果父类有构造函数,子类必须在构造函数中调用
super()
,否则会报错。
class Fish extends Animal { constructor(name: string) { super(name); // 必须调用父类的构造函数 } }
通过 extends
关键字,TypeScript 提供了强大的继承机制,使得代码可以更好地组织和复用。