コード内のインスタンスAnimal
を使用して、クラスの eat メソッドと drink メソッドを呼び出すにはどうすればよいですか?myAnimal
public class Animal {
public void eat() {
System.out.println("Animal Eats");
}
public void drink() {
System.out.println("Animal Drinks");
}
}
public class Cat extends Animal {
@Override
public void eat() {
System.out.println("Cat Eats");
}
@Override
public void drink() {
System.out.println("Cat Drinks");
}
public static void main(String[] args) {
Cat myCat = new Cat();
myCat.eat();
myCat.drink();
Animal myAnimal = myCat;
myAnimal.eat();
myAnimal.drink();
}
}
取得した出力:
Cat Eats
Cat Drinks
Cat Eats
Cat Drinks
予想される出力は次のとおりです。
Cat Eats
Cat Drinks
Animal Eats
Animal Drinks
ベストアンサー1
望むことを実行することはできません。ポリモーフィズムは、見ているものを実行することによって機能します。
基本的に猫は自分が猫であることを常に認識しており、猫、ネコ科、ネコ亜科、ネコ目、食肉目、獣類、哺乳綱、脊椎動物、脊索動物門、真後生動物、動物界、動物、物体、またはその他のものとして扱われるかどうかに関係なく、常に猫のように振る舞います:-)