【发布时间】:2019-07-03 19:37:30
【问题描述】:
在下面的代码中,class_1 和 class_2 都从 AbstractClass 扩展而来。我打电话时正在尝试:
c1.setValid(5)
以下两行同样返回 5:
System.out.println(c1.getValid());
System.out.println(c2.getValid());
请告诉我如何修改 Super 类来实现这一点。
主要:
public class Main {
public static void main (String[] args) {
Class_1 c1 = new Class_1();
Class_2 c2 = new Class_2();
System.out.println(c1.getValid());
System.out.println(c2.getValid());
c1.setValid(5);
System.out.println(c1.getValid());
System.out.println(c2.getValid());
}
}
class_1
public class Class_1 extends AbstractClass {
public Class_1() {
// TODO Auto-generated constructor stub
}
public void setValid(int v) {
SetValid(v);
}
public int getValid() {
return GetValid();
}
}
class_2.:
public class Class_2 extends AbstractClass {
public Class_2() {
// TODO Auto-generated constructor stub
}
public void setValid(int v) {
SetValid(v);
}
public int getValid() {
return GetValid();
}
}
代码:
public abstract class AbstractClass {
public int isValid = -1;
public void SetValid(int value) {
this.isValid = value;
}
public int GetValid() {
return this.isValid;
}
【问题讨论】: