typescript的抽象成员 abstract
2024-12-18 本文已影响0人
rainy66
abstract class Person {
public name:string
constructor(name:string) {
this.name = name
}
// 建立一个抽象方法
abstract sayHi():void
}
//抽象类不能直接new,需要创建子类去实现sayHi的方法
class Staudent extends Person {
constructor(name:string) {
super(name)
}
sayHi() {
console.log(`我是一个学生,我的名字是 ${this.name}`)
}
}
class Teacher extends Person {
constructor(name:string){
super(name)
}
sayHi() {
console.log(`我是一个老师,我的名字是${this.name}`)
}
}
//创建子类后才能new实例
const staudent = new Staudent('小米')
const teacher = new Teacher('老王')
staudent.sayHi()
//"我是一个学生,我的名字是小米"
teacher.sayHi()
//"我是一个老师,我的名字是老王"
很好的做了一个方法的分离,针对不同对象的同方法做了一个不同的实现