抽象クラスについて Javascript
抽象クラスについてまとめる
下のコードは、
抽象クラスでアニマルクラスを作成。
犬クラスに抽象クラスを継承。
鳥クラスに抽象クラスを継承。
です。
抽象クラスを使わないと、
犬でも、鳥でも、
毎回以下を書かなければいけないので、面倒だし、読みずらいし、変更したときに、1つ1つ変更しなければいけない。。
console.log('歩く')
console.log('速く歩く')
console.log('歩く')
console.log('歩く')
console.log('遅く歩く')
console.log('歩く')
//抽象クラス(アニマルクラス) //歩くのは動物にとって共通のことなので、抽象クラスで定義する //Dog, Birdで歩く動作を重複して書く必要がない abstract class Animal { constructor(){ } walk(){ console.log('歩く') console.log('速く歩く') console.log('歩く') console.log('歩く') console.log('遅く歩く') console.log('歩く') } } ////////////////////////////////////////////////////////////////////////////////////////////////////// //犬は、以下ができる //歩く:歩くは再定義しないで、抽象クラスのwalk()を使う //吠える:吠えるは、犬のだけの技なので抽象クラスでは定義せずに、ここで定義する class Dog extends Animal { constructor(){ super(); } walk(){ super.walk(); //抽象クラスのwalk()を使う } bark(){ console.log('吠える') } } ////////////////////////////////////////////////////////////////////////////////////////////////////// //鳥は、以下ができる //歩く:歩くは再定義しないで、抽象クラスのwalk()を使う //飛ぶ:飛ぶは、鳥だけの技なので抽象クラスでは定義せずに、ここで定義する class Bird extends Animal { constructor(){ super(); } walk(){ super.walk(); //抽象クラスのwalk()を使う } fly(){ console.log('飛ぶ') } }