说明
尚硅谷TypeScript教程(李立超老师TS新课)学习笔记。
抽象类
以 abstract 开头的类是抽象类,抽象类和其他类区别不大,只是不能用来创建对象,抽象类就是专门用来被继承的类
抽象方法:
- 抽象方法使用 abstract 开头,没有方法体
- 抽象方法只能定义在抽象类中,子类必须对抽象方法进行重写
例子
(function() {
// 父类
abstract class Animal {
name: string;
constructor(name: string) {
this.name = name;
}
// 定义一个抽象方法
abstract sayHello():void;
}
// 使Dog类继承Animal类
class Dog extends Animal{
sayHello() {
console.log(`${
this.name}汪汪汪`);
}
}
class Cat extends Animal{
// 非抽象类“Cat”不会实现继承自“Animal”类的抽象成员“sayHello”。
sayHello() {
console.log(`${
this.name}喵喵`);
}
}
const dog = new Dog("小黄");
console.log(dog);
dog.sayHello();
// console.log(new Animal); // 无法创建抽象类的实例。
})()