0

誤解しないでください。私はかなり長い間この答えを探しています。率直に言って、満足のいく答えはどこにもありませんでした。多くの場所で - MI が次の問題を大きく引き起こすと言及されています。2 つのクラス A と B があり、1 つのクラス C が A と B の両方から継承され、両方の A、B でメソッドが宣言されています。クラスの場合、コンパイラは、このようなものを発行したときにどの foo(int) を呼び出すかを知りません -

C c = new C();
c.foo(i);

しかし、複数のクラスによる継承の代わりに複数のインターフェースを使用する場合、克服できるでしょうか? 複数のインターフェースの実装を多重継承と呼ぶのでしょうか? 複数のインターフェイスを使用する場合、上記の問題はコンパイラによってどのように処理されますか?

また、-いつインターフェイスを使用する必要があり、いつ抽象クラスを介して同じことを行う必要があるか-それはそのような考えにのみ依存します-

要件が頻繁に変更される場合は、インターフェイスを使用して同じものを実装しますが、それ以外の場合は抽象クラスを選択しますか? 誰かが言及したい他の理由があるかどうか知りたい. これらは OOO の非常に基本的な概念であり、同じことを学習する上でかなりの進歩を遂げるには、何かが欠けていると思います。この質問を少し長くして申し訳ありません。

4

1 に答える 1