抽象类, 很抽象, 使用 abstract 关键字定义, 有以下几个特点
- 不能被创建对象, 是专门用来被继承的类
- 可以添加抽象方法, 且抽象方法只能定义在抽象类中
- 子类继承了抽象类, 必须对抽象方法重写
// Person抽象类
abstract class Person {
// 属性
name: string;
age: number;
// 构造方法
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
// 抽象方法, 不能有具体实现
abstract call():void;
}
// User类继承Person类, 并实现且必须实现抽象方法
class User extends Person {
call() {
console.log(`我是${this.name}, 我今年${this.age}岁`);
}
}
let p = new Person(); // 错误, 抽象类无法创建实例
let user = new User("小明", 18);
user.call();