- 专门用于给其他类继承的基类,不能创建实例,用于定义类的标准
- 抽象类中还有抽象成员,两者都通过
abstract
关键字定义
abstract class ClassName {
public abstract name: string
public abstract play(): string
public abstract get getName(): string
public abstract set setName(value: string)
}
- 抽象成员只能在抽象类中定义,也需要修饰符,抽象成员必须被子类实现
- 抽象属性:定义名称和类型
- 抽象方法:定义名称和返回值类型,不需要函数体
- 抽象取值器:定义名称和返回值类型,不需要函数体
- 抽象存值器:定义名称和一个参数,不需要返回值类型和函数体
- 抽象类可以定义实例成员,不需要实现
class Child extends ClassName {
public name = '阿坤'
public play() {
return `${this.name}在打篮球`
}
public get getName() {
return this.name
}
public set setName(value: string) {
this.name = value
}
}
- 抽象成员可以看做是一个类型,现实时符合要求即可,不需要再定义类型
- 抽象类实现了多态