JavaScriptのOOPにおける継承時のコンストラクタ
継承時には、親のコンストラクタをオーバーライドすることができます。 例を見てみましょう。次の親クラスがあるとします:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
getName() {
return this.name;
}
getSurn() {
return this.surn;
}
}
親クラスを継承する次のクラスがあるとします:
class Student extends User {
}
子クラスでコンストラクタを拡張し、 追加のパラメータを持たせたいとします:
class Student extends User {
constructor(name, surn, year) {
}
}
この場合、最初の行で super を通じて
親のコンストラクタを呼び出す必要があります:
class Student extends User {
constructor(name, surn, year) {
super();
}
}
super コマンドは本質的に親のコンストラクタです。
したがって、必要なパラメータを渡します:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
次に、子クラスで学習年度を子クラス独自のプロパティに記録します:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
学習年度のゲッターを作成します:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
getYear() {
return this.year;
}
}
クラス Employee がこのレッスンの
クラス User を継承しているとします。
クラス Employee で親のコンストラクタをオーバーライドし、
年齢と給与のパラメータを追加してください。
年齢と給与のゲッターを作成してください。