父类
static String a="";
static String b="";
static String c="";
public String k(String k){
return null;
}
}
子类
public String k(String s) {
if (s.equals(fu.a)) {
return "111";
}
if (s.equals(fu.b)) {
return "222";
}
if (s.equals(fu.c)) {
return "333";
}
return null;
}
}
测试类
fu i=new zi();
System.out.println(i.k(fu.a));
System.out.println(i.k(fu.b));
System.out.println(i.k(fu.c));
}
}
以上代码本该输出
111
222
333
但运行后发现输出是
111
111
111
要避免上述问题,就要在调用bc时对其初始化
可以把子类修改为
if (s.equals(fu.a)) {
return "111";
}
if (s.equals(fu.b)) {
return "222";
}
if (s.equals(fu.c)) {
return "333";
}
return null;
}
}
再调用测试类时,输出结果正常
第二个应该注意的问题
父类
public void setA(String a) {
this.a = a;
}
}
子类
测试类
程序本意是想输出父类被子类修改过的a值,但这样运行会输出null
其原因在测试类中输出前,并没有得到子类修改后的a值
测试类输出前应作此修改