class Animal
{
public void eat()
{
System.out.println("吃食物的方法");
}
}
class Hawks extends Animal
{
public void eat()
{
System.out.println("鷹用嘴雕");
}
}
class frog extends Animal
{
public void eat()
{
System.out.println("青蛙用舌頭");
}
}
class locust extends Animal
{
public void eat()
{
System.out.println("蝗蟲用群攻");
}
}
class Main
{
public static void main(String[] args)
{
Animal animal = new Hawks();//父類呼叫子類的物件
Hawks hawks1 = (Hawks) animal;(這句話的含義是什么意思)
hawks1.eat();
}
}
uj5u.com熱心網友回復:
Hawks hawks1 = (Hawks) animal; //把animal物件強制轉換為Hawks型別,并把轉換結果賦給hawks1變數這種向下轉型是為了呼叫子類自己特有的方法(也就是不是繼承于父類的方法),在你本例中 eat方法 繼承于父類(子類只是重寫,并沒有新增方法),所以向下轉型沒什么意義,直接呼叫animal.eat()也是一樣的結果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/152948.html
標籤:Java相關
