typescript的抽象成员 abstract

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容