tgoop.com/BookJava/3942
Create:
Last Update:
Last Update:
🧠 Можно ли переопределить getClass()
в Java?
Нет, нельзя.
Метод getClass()
в java.lang.Object
объявлен так:
public final native Class<?> getClass();
📌 Почему:
-
final
— запрещает переопределение в наследниках.-
native
— реализован в JVM, а не на Java.- Гарантирует, что при вызове
obj.getClass()
всегда вернётся реальный класс объекта, без подмен и сюрпризов.💡 Если хотите вернуть “свой” тип, делайте отдельный метод:
class MyClass {
public String getTypeName() {
return "CustomType";
}
}
⚠️ Переопределяемый
getClass()
сломал бы рефлексию, сериализацию и кучу системных механизмов. Именно поэтому Java защищает его.👉 @BookJava
BY Библиотека Java разработчика

Share with your friend now:
tgoop.com/BookJava/3942