Evg*_*rov 3 java inheritance static
public class Base{
protected String str;
public static final Base ERROR = new Base("error");
...
}
public class Derived extends Base{
public static final Derived OTHER = new DERIVED("other");
public Derived(String str) {
super(str);
}
}
Derived page = Derived.OTHER; //OK
page = (Drived)Derived.ERROR; //ClassCastException
Run Code Online (Sandbox Code Playgroud)
那么我可以将静态成员变量从Base转换为Derived类吗?
NPE*_*NPE 12
你不能.
这是不可能投Derived.ERROR给Derived,因为它不是一个实例Derived.这是一个例子Base.
它可能有助于消除混淆以实现这一点,Base.ERROR并且Derived.ERROR有两种方式来引用同一个对象.