Всем привет, не знаю насколько правильное место выбрал для вопроса, суть в чем, изучая ООП на данной стадии, а, в особенности, интерфейсы, решил закрепить всю информацию книгой Сьерры "Изучаем Java", однако не могу понять момент с Object, в ключевых моментах написано:
1)Вы можете вызывать методы объекта, только если они присутствуют в классе( или интерфейсе), который использовался в качестве типа ссылки, несмотря на фактический тип объекта. По этой причине ссылочная переменная типа Object может применяться только для вызова методов, определенных в классе Object, несмотря на указываемый ссылкой тип объекта.
2)Ссылочная переменная типа Object не может присваиваться ссылке другого типа без приведения. Приведение часто применяется для присвоения ссылке одного типа ссылки, имеющей дочерний тип. Однако во время выполнения программы приведение не сработает, если тип объекта в куче окажется несовместимым с типом приведения.
Может ли кто помочь разобраться в написанном здесь? Или дать ссылку, где еще можно почитать об этом
Денис Панасенко
23 уровень
Не понял формулировку из книги Сьерра
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #2020490
9 февраля 2020, 19:43полезный
// Скопировал несколько цитат.
Набор методов, которые можно вызвать у переменной, определяется типом переменной. А какой именно метод/какая реализация вызовется, определяется типом/классом объекта, ссылку на который хранит переменная.
И если мы хотим обратиться к методам класса Journal, которые определены не в интерфейсе Printable, а в самом классе Journal, то нам надо явным образом выполнить преобразование типов: ((Journal)p).getName();
https://javarush.com/quests/lectures/questcore.level02.lecture01
https://metanit.com/java/tutorial/3.7.php
+1
Денис Панасенко
11 февраля 2020, 11:08
Спасибо, перечитал еще раз лекцию по приведению и допер
0