当前位置: 代码迷 >> J2SE >> 找不到符号,该如何解决
  详细解决方案

找不到符号,该如何解决

热度:10   发布时间:2016-04-23 21:26:11.0
找不到符号
public class TestEdible {
public static void main(String[] args) {
Object[] objects = { new Chicken(), new Apple()};

for (int i = 0; i < objects.length; i++) {
if (objects[i] instanceof Edible)
System.out.println((Edible)objects[i].howToEat());

}
}
interface Edible {
public abstract String howToEat();
}
class Animal {
}
class Chicken extends Animal implements Edible {
public String howToEat() {
return "Chicken : Fry it";
}
}
class Tiger extends Animal {

}
abstract class Fruit implements Edible {

}
class Apple extends Fruit {
public String howToEat() {
return "Apple: Make apple cider";
}
}
class Orange extends Fruit {
public String howToEat() {
return "orange : Make orange juice";
}
}

------解决方案--------------------
System.out.println((Edible)objects[i].howToEat());改成System.out.println(((Edible)objects[i]).howToEat());
------解决方案--------------------
没有进行向下类型转化


public class TestEdible
{
public static void main(String[] args)
{
Object[] objects =
{ new Chicken(), new Apple() };

for (int i = 0; i < objects.length; i++)
{
if (objects[i] instanceof Edible)
System.out.println(((Edible) objects[i]).howToEat()); //向下类型转化
}
}
}

------解决方案--------------------
System.out.println((Edible)objects[i].howToEat());改成System.out.println(((Edible)objects[i]).howToEat());正解
  相关解决方案