当我调用下面的方法时,它返回null。
public String determineAction(String someAction){
if(someAction.length() > 4){
return someAction;
}else{
return super.determineAction(someAction)
}
}
当我将return语句分解为String返回值
时 String action = super.determineAction(someAction);
return action;
返回值。
关心分享一些机制?我不记得在其他对象或原始数据类型中看到这种行为。
以下是超级方法
protected String determineAction(String someAction) {
if(someAction!= null) {
switch(someAction) {
case ACCEPT: return ACTION_ACCEPT;
case CANCEL: return ACTION_CANCEL;
case UPDATE: return ACTION_UPDATE;
case PASS: return ACTION_PASS;
default: return null;
}
}
return null;
}
答案 0 :(得分:0)
请参阅以下代码段。
父类
public class Father {
protected String determineAction(String someAction) {
if(someAction!= null) {
switch(someAction) {
case "abc": return someAction+someAction+someAction;
case "ab": return someAction+someAction;
default: return null;
}
}
return null;
}
}
儿童班
public class Son extends Father {
public String determineAction(String someAction){
if(someAction.length() > 4)
return someAction;
return super.determineAction(someAction);
}
public static void main(String[] args) {
Son mySon = new Son();
System.out.println(mySon.determineAction("abc")); // prints abcabcabc // father determineAction()
System.out.println(mySon.determineAction("a1234")); // prints a1234 // son determineAction()
}
}