当我们想实现类的继承,可以使用 exteneds 关键字,前面是要创建的新类(子类),后面则是要继承的类(父类)。当继承后,子类就拥有了父类的属性和方法了
//父类 Animal
class Animal {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
sayName(): void {
console.log("Animal");
}
}
//子类 Dog 继承了父类 Animal,并重写了 sayName方法
class Dog extends Animal {
sayName(): void {
console.log("我是小狗");
}
}
//子类 Cat 继承了父类 Animal,并重写了 sayName方法
class Cat extends Animal {
sayName(): void {
console.log("我是小猫");
}
}
//子类 Mouse 继承了父类 Animal
class Mouse extends Animal {}
//此时,实例d和c都有了 name和age属性,但sayName方法都各自的子类的
const d = new Dog("小狗", 5);
const c = new Cat("小猫", 3);
d.sayName() // 我是小狗
c.sayName() // 我是小猫
//m实例也具有 name和age属性,但是sayName方法也继承了父类的
const m = new Mouse("老鼠", 1);
m.sayName() // Animal