Гарантирует ли язык Java, что оператор instanceof
или метод getClass()
, примененный к this
в конструкторе, всегда применяются к более глубокому классу в иерархии?
Например, если Я хочу ограничить подклассы, которым разрешено вызывать конструктор из суперкласса, я мог бы сделать это:
class A {
A() {
final Class<?> clazz = getClass();
if (clazz != A.class && clazz != B.class && clazz != C.class) {
throw new IllegalStateException();
}
}
}
, но мне интересно, гарантирует ли язык, что он будет работать или нет.