Mar*_*mer 8 java extends superclass
我有一个java初学者问题:Parent.print()在控制台中打印"hallo",但Child.print()打印"hallo".我认为它必须打印"孩子".我怎么解决这个问题?
public class Parent {
private String output = "hallo";
public void print() {
System.out.println(output);
}
}
public class Child extends Parent {
private String output = "child";
}
Run Code Online (Sandbox Code Playgroud)
目前你有两个独立的变量,而且代码Parent只知道Parent.output.您需要将值设置Parent.output为"child".例如:
public class Parent {
private String output = "hallo";
protected void setOutput(String output) {
this.output = output;
}
public void print() {
System.out.println(output );
}
}
public class Child extends Parent {
public Child() {
setOutput("child");
}
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是为Parent类提供一个获取所需输出的构造函数:
public class Parent {
private String output;
public Parent(String output) {
this.output = output;
}
public Parent() {
this("hallo");
}
public void print() {
System.out.println(output );
}
}
public class Child extends Parent {
public Child() {
super("child");
}
}
Run Code Online (Sandbox Code Playgroud)
这真的取决于你想做什么.
| 归档时间: |
|
| 查看次数: |
46869 次 |
| 最近记录: |