1

インターフェイスにメソッド本体を含めることはできず、別のクラスに実装してカスタム ロジックを記述できることはわかっています。しかし、クラスの継承を使用して同じことを実装することもできます。次に、なぜインターフェースが登場するのか。メソッド定義をオーバーライドしたい場合は、クラスの継承で行うことができ、カスタム コードを記述できます。インターフェイスの正確な目的は何ですか?

4

2 に答える 2

6

1つの理由は、クラスが複数のインターフェースを実装する可能性があるが、単一のクラスからのみ派生することです。

もう1つは、階層的に完全に無関係なクラスが同じインターフェースを実装する可能性があることです。インターフェイスのない静的に型付けされた言語では、非常に深い継承階層を観察することがよくあります。これは、インターフェイスを単純に実装できず、無関係のクラスを強制的に派生させる必要があるためにのみ作成されます。これはしばしば「Isa」(遺伝の原則)に違反する傾向があります。このような実装は、継承ツリーのさらに下に必要であるという理由だけで、未使用のコードをドラッグする傾向もあります。

tl; dr-それは可能ですが、結果はしばしば醜くて維持不可能です

于 2012-09-07T09:25:31.940 に答える
2
  • インターフェース-オブジェクトはこれを行うことができます。
  • クラス-これは、オブジェクトがこれを行う方法です。

また、インターフェースを使用して菱形継承問題を回避することもできます

于 2012-09-07T09:49:12.837 に答える