public static void battleWithLoin( Object spartan1, Object spartanLion){
System.out.println( spartan1.spartanHealth + " Versus " + spartanLion.spartanHealth);
}
当我运行编译器时找不到符号。我相信它谈论的是.spartan Health。为什么这个方法不能访问Spartan对象变量?
答案 0 :(得分:0)
因为编译器正在检查字段Object
的类spartanHealth
。
将参数类型更改为Spartan
,因为这是具有spartanHealth
字段的类。
由于编译器没有运行您的代码,因此它知道如何知道这些对象实际上是斯巴达人。如果必须按照它们的方式保留参数,则必须转换变量以让编译器知道。
((Spartan) spartan1).spartanHealth