2017-03-15 10 views
8

、Javaクラスに関しては真であるとして、次のJavaクラスの要件次の問題で

1.?
a)すべてのクラスは1つの親を持つ必要がありますが、任意の数の子(派生または拡張)クラスを持つことができます。
b)すべてのクラスは1つの子クラス(派生クラスまたは拡張クラス)を持つ必要がありますが、任意の数の親クラスを持つことができます。
c)すべてのクラスは1つの親クラスを持ち、1つの子クラス(派生クラスまたは拡張クラス)を持つ必要があります。 d)すべてのクラスは、任意の数(0以上)の親クラスと任意の数の子クラス(派生クラスまたは拡張クラス)を持つことができます。
e)すべてのクラスは、0または1の親クラスと任意の数の子クラス(派生クラスまたは拡張クラス)を持つことができます。

答えはe)と考えていました。私はすべてのクラスが最大で1つの親クラスまたは少なくとも0(Objectクラスには親クラスを持たない)を持つことができるので、これを考えました。さらに、任意の数の子を持つことができます(0以上の整数を仮定)。正解はA)た:

すべてのクラスは1人の親を持たなければなりませんが、子供(派生または拡張)のクラスの任意の数を有することができます。

これは、Objectクラスをクラスと見なすことができないということですか?

オブジェクトクラスに親がありますか?

また、私は最近、この一連の課題(実際には宿題ではなく、オプションのテストレビュー)からJavaに関する別の質問をしました。 2つの投稿には申し訳ありませんが、質問を1つの投稿にまとめるために正しいetiqutteに従ったとは思いませんでした。

+0

任意の数のサブクラス化することができるクラス

  • ありません。 –

  • +1

    @SpencerWieczorek Objectクラスはどうですか?基本親クラスはありません。 –

    +2

    ああ、少年、あなたは教授に尋ねる必要があります。 'final class B'は' '任意の数の子 'を持つことができないので、' e'には例外があります。 –

    答えて

    1

    技術的に言えば、AもEも正しくありません。 Objectクラスは、親を持たないことでユニークです。他のすべてのクラスは厳密に1つの親を持つ必要があります。したがって、すべてのクラスは、親を持っている必要があります - Objectはありません - すべてのクラスゼロの親を持つことができることも真実ではありません - それだけでObjectが許可されます。

    しかし、質問をユーザ定義のクラスに限定して、特別なケースをObjectのままにしておけば、答えAは正しいです。

    +1

    他のコメントで指摘されている点を除いて、最終的なクラスは存在します.... –

    +0

    @SocraticPhoenixなので最終クラスは何ですか?更新:OK私はそれを持っている..最終的なクラスの懸念は、質問文脈 –

    0

    質問は少し誤解を招くようです。 (e)が正しいと思われる。 以下の概念は、質問をより良く理解するのに役立ちます。

    • オブジェクトクラスは、すべてのJavaクラスのスーパークラスです。
    • Javaは多重継承をサポートしていません
    • 複数の継承は、インタフェースを使用してJavaで実現できます。
    • インタフェースは、Javaのすべてのクラスは、基本親クラス(*オブジェクト*)を有しているので、最終ないクラスは、Javaクラス