抽象类概述
- 抽象类是专门用于定义那些不希望被外界直接创建的类的
- 抽象类一般用于定义基类
- 抽象类和接口一样用于约束子类
- 首先来看看没有抽象类的实现写法,在TypeScript-类方法修饰符 章节当中我已经编写过了,这里就不在编写了,就直接开始看抽象类即可
错误示例:

abstract class Person {
    abstract name: string;
    abstract say(): void;
}
class Student extends Person {
    name: string = 'BNTang';
    say(): void {
        console.log(`我的名字是${this.name}`);
    }
}
let p = new Person();正确示例:
abstract class Person {
    abstract name: string;
    abstract say(): void;
}
class Student extends Person {
    name: string = 'BNTang';
    say(): void {
        console.log(`我的名字是${this.name}`);
    }
}
let stu = new Student();
stu.say();抽象类和接口的区别
- 接口中只能定义约束, 不能定义具体实现
- 而抽象类中既可以定义约束, 又可以定义具体实现

abstract class Person {
    abstract name: string;
    abstract say(): void;
    eat(): void {
        console.log(`${this.name}正在吃东西`);
    }
}
class Student extends Person {
    name: string = 'BNTang';
    say(): void {
        console.log(`我的名字是${this.name}`);
    }
}
let stu = new Student();
stu.say();
stu.eat();










