6

マスター試験より:

正しいステートメントはどれですか? (該当するものをすべて選択してください)

A. is-a 関係は常に継承に依存し
Bます。is-a 関係は常にインスタンス変数に依存します
C。is-a 関係には、常に少なくとも 2 つのクラス タイプが必要です
D。is-a 関係は常に polymorphism に依存し
Eます。is-a 関係は常に密結合

正解:A、C、D

A、C、D のどれが正しいのかわかりません。

オブジェクト オブジェクト IS-A オブジェクトです。文字列オブジェクトは文字列です。これらの各ステートメントには 1 つのクラス タイプしかなく、継承やポリモーフィズムは適用されません。

私の理論的根拠は間違っていますか、それとも答えは間違っていますか?

4

6 に答える 6

4

「関係」とは、2つのクラス間の関係を指します。is-a関係は、継承を使用するタイプの関係です(たとえば、構成を使用するhas-aとは対照的です)。たとえば、文字列は-オブジェクトです。クラスはそれ自体から継承することはできません。これはCを意味します。補足として、クラスはそれ自体との構成(has-a)を持つことができます。たとえば、ある人が別の人をマザーフィールドとして持つことができます。

継承がある場合はいつでも、サブクラスのインスタンスをスーパークラスのインスタンスとして使用できます。それはポリモーフィズムです。つまり、Dも正しいということです。

于 2010-07-13T13:44:28.753 に答える
3

A.文字列が文字列であることは... トートロジーであり、明白であると考えられています。java.lang.Stringしかし、API ドキュメントを見ると、 aもであることがわかりますjava.lang.Object。実際、すべての Java クラスは java.lang.Object を継承しています。オブジェクトの基本的なプロパティを継承し、独自のプロパティをいくつか追加します。それがis-a関係のすべてです。

C.繰り返しになりますが、任意のオブジェクトがそれ自体であるというトートロジーは、禅仏教徒にとって興味深いものですが、言語設計者やその他のコンピューター科学者にとっては興味深いものではありません。そのため、「is-a」関係を持つには、2 つの異なるクラスが必要です。

D.ここはよくわかりません。私が尋ねられたら、ポリモーフィズムは「is-a」関係に依存するものであり、その逆ではないと答えるでしょう。

于 2010-07-13T13:49:04.063 に答える
1

この関係はオブジェクトではなくクラスに適用されるため、論理的根拠は少しずれています。

String文字列IS-から継承するため、オブジェクトObject。同様に、FileOutputStreamIS- OutputStreamAIS-A Object

IS-Aはクラス間の関係であり、クラスとオブジェクト間の関係ではありません。

于 2010-07-13T13:44:30.030 に答える
1

あなたはそれを少し異なって見る必要があります:

  • は-動物
  • には-エンジン
  • 文字列は-オブジェクト
  • 文字列には-char配列

そのようにそれを見てみてください、それは今より明確になるはずです。

于 2010-07-13T13:44:39.393 に答える
1

ポイントAとCは今ではかなり明確だと思います... Dに関しては、インスタンスの動作やプロパティなしでクラスを拡張することは技術的に可能かもしれません..(空白または静的要素のみ)...しかし、それは原則として、継承ツリーの上位のクラスから動作/機能を継承したいため、クラスを「拡張」する目的を無効にします。したがって、オプション D. は (ほぼ) 正しいと言えます :) (技術的になりすぎない場合) ところで、これは興味深い議論になる可能性があります。

于 2010-07-13T15:23:26.350 に答える
0

申し訳ありませんが、あなたの論理は間違っています。彼らは2つの異なるクラスについて話している. たとえば、文字列はオブジェクトです。

于 2010-07-13T13:46:00.213 に答える