SSブログ

[JavaSctipt]オブジェクト指向の実装(クラスの継承) [Programming JavaScript]

[はじめに]
JavaScriptの規格は、
ECMAScript(エクマスクリプト)で定められています。

JavaScriptは時代と共に進化しており、
最近のブラウザの大半は、
ECMAScriptのバージョンとして、ES6(ES2015)以降を取り入れています。

ES6(ES2015)は、
クラスなど、オブジェクト指向の概念を取り込んでおり、
最近のソースでもクラスの記載が散見されます。
もちろん、クラスの継承も可能です。

備忘録として、
クラスの継承についてのサンプルソースを掲載します。
以下は、
親クラス「Mammalクラス(哺乳類)」
子クラス「Dogクラス(犬)」「Catクラス(猫)」とした実装例です。
実行結果_オブジェクト指向の継承_クラス図.png

//【クラス定義(Mammal.js)】
class Mammal{

   //変数宣言(Private)
   //※変数名の先頭に「_」を付加することでPrivate指定になります。
   //名前
   #_name = "";

   //コンストラクタ
   constructor(name){
      this.#_name = name;
   }

   //名前
   get name(){
      return this.#_name;
   }

}
[JavaScript]親クラス(Mammal.js)



//【クラス定義(Dog.js)】
//  Mammalクラスを継承
class Dog extends Mammal{

   //コンストラクタ
   constructor(name){
      //注意:
      //親クラスを継承する際、コンストラクタを定義する場合は、
      //必ずsuper(親クラスのコンストラクタ)を呼び出してください。
      //但し、superを呼び出す前に'this' にアクセスすると、
      //エラーになりますのでご注意ください。
      super(name);
   }

   //挨拶をする。
   sayHello(name){
      window.alert(
         "こんにちは。私の名前は" + this.name + "です。");
   }

   //鳴く
   cry(){
      window.alert("ワンワン");
   }

}
[JavaScript]子クラス(Dog.js)


//【クラス定義(Cat.js)】
//  Mammalクラスを継承
class Cat extends Mammal{

   //コンストラクタ
   constructor(name){
      //注意:
      //親クラスを継承する際、コンストラクタを定義する場合は、
      //必ずsuper(親クラスのコンストラクタ)を呼び出してください。
      //但し、superを呼び出す前に'this' にアクセスすると、
      //エラーになりますのでご注意ください。
      super(name);
   }

   //挨拶をする。
   sayHello(name){
      window.alert(
         "こんにちは。私の名前は" + this.name + "です。");
   }

   //鳴く
   cry(){
      window.alert("にゃーにゃー");
   }

}
[JavaScript]子クラス(Cat.js)


<html>
<head>

<script language="javascript" src="./Mammal.js"></script>
<script language="javascript" src="./Dog.js"></script>
<script language="javascript" src="./Cat.js"></script>
<script language="javascript" >

   function dog_access()
   {
      const mammal = new Dog("ポチ");
      mammal.cry();
      mammal.sayHello();
   }

   function cat_access()
   {
      const mammal = new Cat("タマ");
      mammal.cry();
      mammal.sayHello();
   }


</script>
</head>
<body bgcolor="azure">

<input type="button" value="Dogクラスにアクセス" onclick="dog_access();"><br/>
<input type="button" value="Catクラスにアクセス" onclick="cat_access();"><br/>

</body>
</html>
[JavaScript]利用例

[実行結果]
実行結果_オブジェクト指向の継承.png
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。