2

最近、私はあるインタビューで次のように尋ねられました. 質問に正確に従うことができるかどうかはよくわかりません。

継承チェーンを断ち切るときに、そのような状況は存在しますか?

私はグーグルを試しましたが、何の手がかりも得られませんでした。

4

2 に答える 2

6

A. 意味のないばかげた質問を受けたとき。

継承は、コードを管理および再利用するための単なるツールです。コンポジションは「継承チェーン」の一部ではない強力なツールなので、それが彼らが探している答えだと思いますか?

彼らが探しているもう 1 つの答えは、インターフェイスの利用です。インターフェイスは「継承チェーン」を必要としないためです。それらを使用すると、アーキテクチャをより柔軟に使用できるようになり、厳密な継承の「チェーン」から離れることができます。

ただし、質問は、すべてが互いに継承する多数のオブジェクトがあり、何らかの理由で継承のチェーンをどこかで「壊す」ことを意味します。問題に対処する OOP の各実装は通常一意であるため、これを行う「決まった」理由はありません。

インタビュアーの質問の言い方は、ほとんど意味がありません。これは面接でのよくない質問であり、最善の答えが得られなかったり、候補者について何も教えてくれなかったりするのですが、彼らはあなたの狂気を理解していません ;)。

編集:いくつかの「より良い」質問を追加しました。

より良い質問は次のとおりです。

Q. 継承と構成の違いは何ですか?
Q. 次のクラス モデル (インターフェイスが必要) がありますが、これを改善することはできますか?
Q. 基底クラスを再設計していて、他の人がこの関数をオーバーライドできないようにしたいと考えています。それをしてもいいですか?
Q. クラス コンストラクターでの仮想メソッドの呼び出しに問題はありますか?

于 2013-09-11T15:30:19.217 に答える
0

「継承チェーンを壊す」(またはクラスを「封印する」) 必要がある理由については、こちらのブログ投稿が適切に説明されています。

于 2013-09-11T15:31:53.667 に答える