Java是否允许做类似的事情:
抽象.java:
public abstract class Abstract {
int state;
abstract void changeState(int newState);
public static class Inherited extends Abstract {
void changeState (int newState) {
/* ... */
}
}
}
Base.java:
public class Base {
static HashMap<String, Abstract> map;
static {
map.insert("handle", new Abstract.Inherited());
}
}
当我尝试编译它时,我得到:“HashMap String,Abstract 类型的方法 insert(String, Abstract.Inherited) 未定义”。我知道我可以通过将 Inherited 完全移出 Abstract 来解决它,但是有没有办法保留它?