0

抽象親クラス P と、2 つの具象子クラス C1 および C2 があります。C1 と C2 は P から延長されます。

これと並行して、iP、iC1、iC2 の 3 つのインターフェースを持っています。iC1 と iC2 は iP から拡張されます。

明らかに、各子クラスはそれぞれのインターフェイスを実装する必要がありますが、抽象親クラスもそのインターフェイスを実装する必要がありますか?

具象クラスのみをインスタンス化し、これらのクラスが (インターフェイス継承階層によって) iP にバインドされていることを考えると、iP を実装するために本当に P が必要かどうかわかりません。

もう1つの選択肢は、インターフェイス側の継承階層を破棄することです...

4

2 に答える 2

2

インターフェイスの精神は、デカップリングを可能にします。つまり、「何を」を「どのように」から分離します。意味がないため、質問で述べているように、クラスごとにハバとインターフェースを使用することは本当に良い習慣ではありません。

クラスが実装しようとしているすべてのメソッドのシグネチャと、子クラスで再利用される共通メソッドを部分的に実装する抽象クラス P と、後で記述する予定のメソッドのシグネチャを iP に含めることができます。あなたの子供のクラスで。

このように、インターフェイスと抽象クラスで宣言されたすべてのメソッドを実装する必要があるため、C1 と C2 が抽象クラス P を拡張するだけで十分です。

于 2012-10-18T05:03:41.417 に答える
0

ビジネスモデルを知らずに答えるのは難しい。しかし、抽象クラスがある場合、C1 と C2 のインターフェイスは必要なく、P が実装し、それが抽象メソッドであると宣言するインターフェイスが 1 つだけあるというのが私の最善の推測です。次に、子クラスは P を拡張します。

于 2012-10-18T05:07:12.983 に答える