【发布时间】:2014-12-09 15:07:47
【问题描述】:
这个程序应该单独调用每个子类的funFact,但它只从Mammal 类调用funFact 方法。我究竟做错了什么?
public class MammalFacts{
public static class Mammal{
public static String funFact(){
return "If you are reading this, there's a 70% chance you're a mammal";
}//end funFact
}//end mammal
public static class Primate extends Mammal{
public static String funFact(){
return "All primates can fly";
}
}//end Primate
public static class Monkey extends Primate{
public static String funFact(){
return "Monkies will rule the earth someday";
}
}
public static void main(String[]args){
Mammal[]i = new Mammal[3];
i[0] = new Mammal();
i[1] = new Primate();
i[2] = new Monkey();
for(int c = 0; c < i.length; c++){
System.out.println(i[c].funFact());
}
}//end of main
}//end MammalFacts
【问题讨论】:
-
为什么
funFact()是静态的? -
如果您将每个动物创建为一个对象,那么您不需要 funFact 函数是静态的
标签: java subclass superclass