インターフェースと抽象クラス

概要: このチュートリアルでは、インターフェースと抽象クラスの違いについて学びます。

インターフェース抽象クラスは、いずれも TypeScript でコードを設計および整理するための強力なツールですが、わずかに異なる目的で利用されます。

次の表は、インターフェースと抽象クラスの違いを示しています。

側面インターフェース抽象クラス
目的契約構造を定義します。共通の機能と構造を提供します。
実装メソッドシグネチャのみが含まれます。実装済みメソッドと抽象メソッドを含めることができます。
多重継承複数のインターフェース実装をサポートします。単一のクラス継承をサポートします。
実装の柔軟性インターフェースには実装コードはありません。実装済みメソッドと抽象メソッドを混在させます。
拡張性新しいプロパティ/メソッドを追加することで簡単に拡張できます。派生クラスに共有メソッドを提供できます。
コンストラクタインターフェースにはコンストラクタはありません。初期化用のコンストラクタを持つことができます。
型のチェックオブジェクトが構造を守っていることを保証します。共通の型と機能を提供します。
インスタンス化インターフェースはインスタンス化できません。抽象クラスは直接インスタンス化できません。
用途契約と構造を設計します。関連するクラス間で機能を共有します。
このチュートリアルは役立ちましたか?