08-TypeScript抽象类

485 阅读1分钟

抽象类, 很抽象, 使用 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();