日期:2014-05-20  浏览次数:20665 次

新手求帮助,为什么我输入值是一样的?
本帖最后由 alice_sg 于 2013-11-06 14:42:06 编辑

public class MonsterTestDriver {
public static void main(String [] args){
Monster [] ma = new Monster[3];
ma[0] = new Vampire();
ma[1] = new Monster();
ma[2] = new Dangon();
for (int x = 0;x<3;x++){
ma[x].frightern(x);
}
}
}

class Monster {
boolean frightern(int d){
System.out.println("arrrgh");
return true;
}
}

class Vampire extends Monster{
boolean frighten(int x){
System.out.println("a bite?");
return false;
}
}


class Dangon extends Vampire{
boolean frighten (int degree){
System.out.println("breath fire");
return true;
}
}


eclipse编译的结果是这个。为什么不是a bite?/breath fire/arrrgh这个结果
java?

------解决方案--------------------
引用:
把Vampire类和Dangon类的frighten方法名改成frightern就可以了,你名字打错了,所以就不是重载了。


不好意思,我口误,这不能说重载。应该说重写。
------解决方案--------------------
子类的方法名字拼写错误