如果要使用方法的功能来初始化对象,则不应让子类破坏该方法。@H_301_4@
回答您的问题,防止出现此问题的 一种方法是getVar
在中将其设为私有A
。@H_301_4@
// A.java
class A {
private final String var;
public A(){
var = getVar();
var.length();
}
private String getVar(){
return "This is the value";
}
}
class B extends A {
private final String other;
public B(){
other = "Other string";
}
public String getVar(){
return other;
}
}
class Main{
public static void main( String [] args ) {
new B();
}
}
顺便说一句,为什么您将它们放置为静态嵌套类,只是造成混乱?@H_301_4@