Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何重写构造函数?_Javascript_Typescript_Web - Fatal编程技术网

Javascript 如何重写构造函数?

Javascript 如何重写构造函数?,javascript,typescript,web,Javascript,Typescript,Web,在我的代码中,我想创建一个名为programmer的类,它从employee类扩展而来 employee类构造函数应该取4个参数,programmer类构造函数应该取5个参数,4个来自employee类,另一个来自programmer类 我该怎么做 class employee { private id: string; private name: string; private department: string; private salary: n

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

employee
类构造函数应该取4个参数,
programmer
类构造函数应该取5个参数,4个来自employee类,另一个来自programmer类

我该怎么做

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}`);
    }
}

我认为您的子类构造函数应该是这样的

Constructor(id: string , name: string , department: string , salary: 
number,programmingLang: string) {
super(id,name,department,salary);
this.programmingLang = programmingLang;
}
子类具有其父类的所有属性,也具有其特定的属性,因此子类构造函数必须将所有这些属性作为参数,并使用其固有的属性作为参数调用父类构造函数,同时使用此关键字初始化其特定属性

我不是java脚本程序员,但这就是继承在所有支持OOP的语言中通常的工作方式。希望有帮助。

请特别参阅
类员工扩展人员的示例。