2016-04-29 21 views
5

私はJava 8のインターフェースを読んでいる間にこのトピックを見つけました。デフォルトまたは静的キーワードを使用してインターフェースでメソッドを定義し、次の子が同じメソッドを再定義するか、実装するシナリオがあります。それは多重継承を意味しますか?私が見つけたもう一つの問題があります。戻り型は共変種型でなければなりません。それ以外の場合は多重継承をサポートしていません。私たちjavaは複数の継承をサポートしていますか?このトピックに関する詳細を私に教えてください。Java 8は複数の継承をサポートしていますか?

+2

@Drakenは、私は他の質問は本当に彼の質問に答えているとは思いませんすべて。 – GhostCat

+0

混乱は単語継承の使用にあります。継承は技術的にはクラスを拡張するためだけに使用し、インタフェースに対しては使用しないでください。したがって、複数の継承を行うことはできませんが、複数の実装を行うことができます。私はもっ​​と多くの助けをすることになって、その件についてさらに読むことを感じる – Draken

+0

あなたは正しい@Jägermeister –

答えて

5

これは多重継承を意味しますか?

インターフェイスの場合は、ただしクラスはありません。クラスだけがフィールドとコンストラクタを持つことができるので、通常、クラスの人々が考えるクラスです。これは多重継承をサポートしていない、まだそれを意味し、他の共同バリアント型が問題をコンパイルしなければならないのJava 1.0

戻り値の型に違いはありませんか?

共変リターン型の必要性は、複数の継承があるかどうかには関係ありません。

私は、javaが複数の継承をサポートしているとは言えますか?

インターフェイスの場合はyesです。その質問がでインタフェース内のJava 8とデフォルトの実装について話されていないよう -

+0

同じデフォルトメソッドを持ちますが、戻り値の型が異なる2つの異なるインタフェースを記述している場合、Javaは戻り値の型が実装クラスの共変量型であることを期待しています。共変種タイプがなければ、Javaはコンパイラエラーをスローします。しかし、複数の継承をサポートするためには、戻り値の型が異なるかもしれません。静的メソッドを使用して、Javaで複数の継承をサポートすることができます。それでも問題はありますが、実際には静的メソッドを使用するために親インターフェイスを追加する必要があります。 –

+1

@ShaikhNizamuddin互換性のない型を返す2つのメソッドがある場合、開発者がメソッドに同じ名前を付けるのが混乱する可能性があります。別の名前を付けることをお勧めしますので、開発者がどのような結果を期待しているのかはっきりしています。 –

+0

ええ、異なる戻り値の型を持つメソッドに異なる名前を使用するのは良いことです。おそらく、今後のJavaバージョン(想定のビット、楽観的な)では、この共変種タイプが曖昧でないことがわかります。 :) –

-2

インタフェース,, Interface..all道..おかげ

+0

場合によってはあいまいさがあります戻り値の型が一致しない場合、多重継承がサポートされるためには、戻り型が共変型である必要があります。しかし、ユーザーは自分のリターンタイプを自由に選ぶことができます... –

関連する問題