2012-04-07 20 views
1

動物はCatクラスの親クラスです。サブクラスの異なる2つの割り当ての相違

2つの割り当ての相違点は何ですか?それぞれは真ですね。そうではありませんか?

+0

違いがあります! myCat1の参照はAnimalを宣言しているため、Animalメソッドしか使用できないため、Catメソッドを呼び出すことはできません。 myCat2については、AnimalメソッドとCatメソッドの両方を呼び出すことができます –

答えて

4

これらのどちらが有効です。 ()が必要です。それとは別に:

  • そのスーパー
  • 秒をすることによってインスタンスへの最初のreferesは、そのクラスでそれを参照
あなたがまで、そのスーパークラスのいずれかによって任意のオブジェクトを参照することができます

Object。これは多型です。

5
Animal myCat1 = new Cat(); 

スーパークラス参照は、サブクラスオブジェクトを保持することができる場合にこれがpolymorphism呼ばれます。

読むのJavaチュートリアル:Polymorphism

+0

あなたが話したページを非常に慎重に読み、コードを把握します。しかし、コードの多型との関係は何ですか?私は多型とは何か分かりませんでしたか?ページの終わりには、次のように言います。Java仮想マシン(JVM)は、各変数で参照されるオブジェクトに対して適切なメソッドを呼び出します。変数の型によって定義されたメソッドは呼び出されません。この動作は、仮想メソッド呼び出しと呼ばれ、Javaの重要な多型機能の側面を示しています。私はそれが何を意味するのか理解できませんでしたか?あなたは明らかにしていただけますか? – oiyio

1

質問に答えてください: 違いはありません - どちらの場合も、 '新しいCat()'はCatクラスのインスタンスを割り当てます。 どちらも真です - myCat1は動物(実際には猫)で、myCat2は猫です。

関連する問題