【发布时间】:2020-01-20 19:07:04
【问题描述】:
你能解释一下吗?为什么我会收到此错误消息?
我输入了这个代码:
public class Animal {
private int size = 0;
private int health = 5;
private int attackPoint = 2;
public int getAttackPoint() {
return attackPoint;
}
public class Cat extends Animal {
public void attackTarget (Animal target) {
target.setHealth(target.getHealth() - this.getAttackPoint());
}
}
class test {
public static void main(String[] args) {
Animal anfis = new Cat();
Animal barsik = new Cat();
anfis.setHealth(5);
barsik.setHealth(5);
barsik.attackTarget(anfis);
}
}
我认为Animal类的链接可以分配Cat的值,没关系。
【问题讨论】:
-
attackTarget是Cat类的一个方法。您的变量barsik的类型为Animal,它没有定义为具有这样的方法,因此Java 无法解析它。barsik将在运行时引用Cat对象这一事实无关紧要。将barsik声明为Cat类型,它将起作用。 -
非常感谢大家!我现在明白了。
标签: java class oop inheritance