TypeScript の拡張と実装の違い

(理解されることは幸運ですが、理解されないことは必ずしも不幸ではありません。他人の理解に自分の価値を全面的に置く人は、多くの場合無価値です。 -周国平)

ここに画像の説明を挿入

伸びる

関連記事

実装する

implements は、クラスがインターフェイスを実装するために使用するキーワードです。インターフェイスを実装するには、インターフェイス内のすべてのメソッドを実装する必要があります。

たとえば、次のコードは抽象クラス AbstractAnimal を定義し、Dog と Cat はそれぞれ AbstractAnimal を実装し、Mouse は AbstractAnimal を継承し、Pig は AbstractAnimal を継承して Dog と Cat を実装します。

abstract class AbstractAnimal {
    
    
  nickname = '动物';
  getData () {
    
    
    console.log('AbstractAnimal');
  };

  static staticNickname = '静态动物';
  static staticGetData () {
    
    
    console.log('staticGetData');
  }
}


class Dog implements AbstractAnimal {
    
    
  nickname: string;
  getData () {
    
    
    console.log('dog');
  }
}

class Cat implements AbstractAnimal {
    
    
  nickname: string;
  getData () {
    
    
    console.log('cat');
  }
  getSelfData () {
    
    
    console.log('get cat data');
  }
}

class Mouse extends AbstractAnimal {
    
     }

class Pig extends AbstractAnimal implements Dog, Cat {
    
    
  getSelfData (): void {
    
    
    throw new Error("Method not implemented.");
  }
}

複数の実装のインターフェイス インターフェイスを定義することもできます

interface IAnimal {
    
    
  nickname: string;
  getData ();
}


class Dog implements IAnimal {
    
    
  nickname: string;
  getData () {
    
    
    console.log('dog');
  }
}

class Cat implements IAnimal {
    
    
  nickname: string;
  getData () {
    
    
    console.log('cat');
  }
}


拡張と実装の違い

  1. extends は継承クラス、implements は実装インターフェイスです。
  2. クラスは 1 つだけ継承でき、インターフェイスは複数のメソッドを実装できます。
  3. extends が親クラスを継承する場合、親クラスのメソッドを書き換えたり、親クラスの非プライベート メソッドを呼び出すことができます。implements はインターフェイスを実装し、インターフェイスのすべてのメソッドを実装する必要があります。
  4. Extends の後にクラスが続き、継承関係を示します。
  5. 実装の後にインターフェイスが続きます。これは、インターフェイスを実装することを意味します (複数の場合があります)。
  6. 継承とは、親クラスのメソッドを継承すると理解でき、親クラスのメソッドをサブクラスで使用できます。
  7. インターフェースの実装とは、インターフェースにメソッドを定義することです。このメソッドは自分で実装する必要があります。インターフェースは、ビジネスインターフェースの仕様を統一するための標準とみなすことができます。

インターフェースとインプリメントの違い

  1. 抽象クラスはメンバー メソッドの実装の詳細を提供できますが、インターフェイスにはパブリック抽象 (暗黙的に宣言された) メソッドのみが存在できます。
  2. 抽象クラスのメンバー変数とメソッドは実装コードを作成できますが、インターフェイスのメンバーは変数とメソッドを宣言することしかできません。
  3. インターフェイスには静的コード ブロックと静的メソッドを含めることはできませんが、抽象クラスには静的コード ブロックと静的メソッドを含めることができます。
  4. クラスは 1 つの抽象クラスのみを継承できますが、クラスは複数のインターフェイスを実装できます。

おすすめ

転載: blog.csdn.net/qq_42427109/article/details/130605846