Как переопределить конструктор? - PullRequest
0 голосов
/ 02 июня 2019

В моем коде я хочу создать класс с именем 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 Ответ

1 голос
/ 02 июня 2019

Я думаю, ваш конструктор дочернего класса должен выглядеть следующим образом.

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

Дочерний класс имеет все свойства своего родителя, а также имеет свои специфические свойства, так что конструктор дочернего класса должен принимать все эти свойства в качестве параметра и вызывать конструктор родительского класса с теми свойствами, которые он наследует в качестве аргумента, а также инициализировать свои специфические свойства, используя это ключевое слово.

Я не программист java-скриптов, но именно так наследование работает в общем на всех языках, поддерживаемых ООП. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...