getclass java



Java getclass

Автор Evgenij Chernjavskij задал вопрос в разделе Java

в чём "магия" метода getClass() в Java? и получил лучший ответ

Ответ от Максим[гуру]
В смысле не переопределён? Там лежит объект B.
Максим
(107519)
Вы создали объект класса B, значит логично, что getClass вернёт собственно класс, к которому он принадлежит. Логично? При чём тут переопределён? Его не надо переопределять.

Ответ от Ѐыжая Морда[гуру]
в java объект "знает" какого он класса во время исполненияв сях это знание есть только у компилятора.здесь в переменную ab положен объект класса B, его имя и возвращается.з. ы. Что логично и правильно. Иначе бы getClass всегда возвращал Object просто потому, что этот метод объявлен в классе Object.

Ответ от Ибрагим Ругова[гуру]
nullptr

Ответ от Cfif[гуру]
Класс Б - наследник от А. т. е. записьA ab = new B().toString();Вообще не имеет смысла и свалится при компиляции, т. к. А - не является стрингом.строка:new B().toString();вернет класс Б, и это и естественно и логично. Объект Б - вызывает метод toString, в классе Б - метод тоСтринг не переопределен, однако он переопределне в классе-родителе, класс наследник наследует все свойства и методы класса-родителя, поэтому вызовется переопределенный метод из класса родителя, т. е. из А, причем вызовется так, будто он переолпределен в классе Б. Как уже говорилось выше ув. "Сам Такой", во время исполнения объект Б знает какого он класса и соотоветсвенно вернет свой класс.Причем это верно и для случая:A ab=new B();String s=ab.toString();потому как ab хоть и является переменной класса А, но в первую очередь все-таки является объектом Класса Б.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: в чём "магия" метода getClass() в Java?
спросили в Java API
JAVA. getClass(), equals(), hashCode() и instanceof что к чему?
читаете
java.lang
Class Object
всё написано чёрным-и-голубым по белому.
коротко и
подробнее...

абсолютный путь в java
Paths.get(this.getClass().getResource("path").toURI())

Максим
(115833)подробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*