如何重写构造函数?

时间:2019-06-02 00:36:06

标签: javascript typescript web

在我的代码中,我想创建一个名为programmer的类,该类从employee类扩展。

employee类的构造函数应采用4个参数,而programmer类的构造函数应采用5个参数,其中4个来自雇员类,另一个来自程序员类。

我该怎么做?

class employee {

     private id: string;
     private name: string;
     private department: string;
     private salary: number;

    constructor(id: string , name: string , department: string , salary: number) {

        this.id = id;
        this.name = name;
        this.department = department;
        this.salary = salary;

    }



    speak() {
        console.log(`ID = ${this.id} , Name = ${this.name} , Department = ${this.department} , Salary = ${this.salary}`);
    }
}

class programmer extends employee {

    private programmingLang: string;

    constructor() {
        super();
    }

    speak() {
        super.speak() , console.log(` , Programming Language = ${this.programmingLang}`);
    }
}

1 个答案:

答案 0 :(得分:1)

我认为您的子类构造函数应如下所示。

Constructor(id: string , name: string , department: string , salary: 
number,programmingLang: string) {
super(id,name,department,salary);
this.programmingLang = programmingLang;
}

child类具有其父级的所有属性,并且还具有其特定的属性,例如,子类构造函数必须将所有这些属性用作参数,并以其继承为参数的那些属性调用父类构造函数,并使用此方法初始化其特定属性关键字。

我不是Java脚本程序员,但这是继承在所有OOP支持的语言中普遍起作用的方式。希望对您有所帮助。