LoginSignup
0
0

More than 3 years have passed since last update.

JavaScript勉強の記録その24:クラスの作成、インスタンスメソッド、継承

Posted at

クラスの作成および、インスタンスメソッドの定義・呼び出し

index.js
class SalesPerson {
  constructor(skill){
    this.skill = skill;
  }

  introduce() {
    console.log(`私は${this.skill}が得意です`);
  }

  call() {
    console.log('お世話になっております');
  }
}

const okuno = new SalesPerson('javascript');
okuno.introduce();
okuno.call();
//=>私はjavascriptが得意です
//=>お世話になっております

クラスの継承

index.js
class Sales { //親クラスの宣言
  constructor(skill){
    this.skill = skill;
  }

  introduce() {
    console.log(`私は${this.skill}が得意です`);
  }

  call() {
    console.log('お世話になっております');
  }
}

class SalesManager extends Sales { //子クラスが親クラスを継承
  constructor(skill, managementExperience){
    super(skill); //親クラスのコンストラクターを呼び出して、skillプロパティに値をセットしてる
    this.managementExperience = managementExperience; //子クラス特有のプロパティに値をセットしている
  }
  introduce(){
    console.log(`私は${this.skill}${this.managementExperience}磨いてきました。`); //メソッドのオーバーライド
  }

}

const manager = new SalesManager('マネジメントスキル', '2年');
manager.introduce();
manager.call(); //子クラスで定義されていないが、継承しているので親クラスのメソッッドを使える

//=>私はマネジメントスキルを2年磨いてきました。
//=>お世話になっております
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0