Возможный дубликат:
Почему Java запрещает статические поля во внутренних классах?
Я прошел спецификацию и понял, что статический член во внутреннем классе не может быть статическим, который не является окончательной постоянной времени компиляции.
class HasStatic {
static int j = 100;
}
class myInnerClassTest {
class Inner extends HasStatic {
static final int x = 3; // OK: compile-time constant
static int y = 4; // Compile-time error: an inner class
}
static class NestedButNotInner{
static int z = 5; // OK: not an inner class
}
interface NeverInner {} // Interfaces are never inner
}
В то время как я получил от Почему у нас есть статические конечные члены, но у меня есть статический метод во внутреннем классе?, что он может наследовать статический член из класса владельца, Но почему это не должно быть? Какой основной ООП больно?