次の演習とちょっと混乱していて、検索機能でそのような質問が見つかりませんでした。Javaでの継承のバージョンとキャスト
間違っ(1) Animal t = new Object();
(2) Animal t = (Dog) (new Object());
(3) Animal t = new Dog();
(4) Animal t = (Dog) new Class();
- :
class Animal class Dog extends Animal //Dog is an extension of Animal
我々はタイプ
Animal
の変数にクラスDog
のオブジェクトを割り当てる:ことを考えると、実行可能なこれらの選択肢の:それは犬とは関係がないので間違っています。
- 良い:オブジェクトはDogの上位クラスで、動物を拡張するDogにキャストするので、大丈夫です。
- 良い:すべての犬は動物であるため、大丈夫です。
- 間違っている:新しいクラスはdefiendではないので、間違っています。
私の推論は正しいのですか?私はあらゆる助けに感謝しています。
これはかなり簡単にテストできますか? – Blorgbeard
あなたの質問に答えはしませんが、検索したい魔法のキーワードは 'java polymorphism'です – engineercoding
オブジェクトのクラスはオブジェクト自体の品質です。どのようにキャストしても、オブジェクトのクラスは変更されず、コードがそのクラスを表示する方法だけが変更されます。作成したオブジェクトがAnimalから継承するクラスでない場合、キャストはそれをAnimalにしません。 – VGR