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()
//"我是一个老师,我的名字是老王" 

很好的做了一个方法的分离,针对不同对象的同方法做了一个不同的实现

上一篇 下一篇

猜你喜欢

热点阅读