TypeScriptの継承の実装方法
TypeScriptでの継承は、クラスの継承に基づいています。
基本的な構文はextendsキーワードを使用します。
以下に簡単な例を示します。
class Animal { name: string; constructor(name: string) { this.name = name; } makeSound() { console.log("Some generic sound"); } } class Dog extends Animal { constructor(name: string) { super(name); // 親クラスのコンストラクタを呼び出します } makeSound() { console.log("Woof! Woof!"); } } const dog = new Dog("Buddy"); dog.makeSound(); // "Woof! Woof!"
この例では、Animalクラスがあり、それを継承するDogクラスを作成しています。
DogクラスはAnimalクラスの機能を受け継ぎながら、独自のmakeSoundメソッドを持っています。
ポイント
1. extendsキーワード:
DogクラスがAnimalクラスを継承するために使用されます。
2. superキーワード:
親クラスのコンストラクタを呼び出すために使用されます。
superを使用して、親クラスのプロパティやメソッドにアクセスできます。
3. メソッドのオーバーライド:
DogクラスはAnimalクラスのmakeSoundメソッドをオーバーライドしています。
複数のクラスの継承
TypeScriptは多重継承をサポートしていませんが、インターフェースを使用して複数のタイプを実装することができます。
interface CanBark { bark(): void; } interface CanRun { run(): void; } class Dog extends Animal implements CanBark, CanRun { constructor(name: string) { super(name); } makeSound() { console.log("Woof! Woof!"); } bark() { console.log("Barking"); } run() { console.log("Running"); } } const dog = new Dog("Buddy"); dog.bark(); // "Barking" dog.run(); // "Running"
この例では、DogクラスはAnimalクラスを継承しながら、CanBarkとCanRunインターフェースを実装しています。
これにより、複数のインターフェースのメソッドを持つことができます。
以上が、TypeScriptでの継承の基本的な実装方法です。