【发布时间】:2013-10-25 22:24:25
【问题描述】:
简单地说,我有一个包含多个变量和方法的抽象类。其他类扩展了这个抽象类,但是当我尝试通过调用抽象类中的 getter 方法来读取抽象类中的私有变量时,它返回 null 作为变量的值。
public class JavaApplication {
public static void main(String[] args) {
NewClass1 n1 = new NewClass1();
NewClass2 n2 = new NewClass2();
n1.setVar("hello");
n2.print();
}
}
public class NewClass1 {
public String firstWord;
public void setVar(String var) {
firstWord = var;
}
public String getVar () {
return firstWord;
}
}
public class NewClass2 extends NewClass1{
public void print() {
System.out.println(makeCall());
}
public String makeCall() {
return getVar();
}
}
仍然打印出 null。
【问题讨论】:
-
请贴出实际代码。如所写,您的
subclass类将无法编译。 -
为什么“System.out.println(var2)”不在方法中?
-
只需编译代码 (
String var2 = getVar1();),将其放入方法中即可。不需要protected。 -
好的,我会发布相关部分,但我必须在一段时间后将其删除。
-
仍然无法编译。您缺少右大括号,并且正在尝试打印 void 方法。
标签: java class variables abstract