类的继承

23 阅读1分钟

当我们想实现类的继承,可以使用 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