• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Объясните Мне Пожалуйста, Много Времени Это На Займёт

  • Автор темы toxli
  • Дата начала
T

toxli

Это глава: "Наследование"
Вот отрывок из книги: "Важно понимать, что доступные объекты определяются типом ссылочной переменной, а не типом объекта, на который она ссылается. То есть при присваивании ссылочной переменной суперкласса ссылки на объект подкласса доступ предоставляется только к указанным в ней частям объекта, определенного суперклассом."
У нас к примеру существует два класса Test и Test2.
Test t = new Test();
Test2 t2 = new Test2();

Test2 наследует Test. В Test2 существует метод weight. У класса Test доступа к этому методу нету. Но все таки, он пробует заполучить этот метод и пишет:
t=t2; - при вызове метода weight(который находится в Test2) через объект t, мы получаем ошибку... Всё правильно, при присваивании ссылочной переменной суперкласса(я не уверен, что такое ссылочная переменная)ссылки класса Test2, класс Test, как бы, не знает, что в него передает класс Test2. И из-за этого ошибка. Пожалуйста, объясните мне следующие выражения:
1.Что такое ссылочная переменная?
2.Как понять "доступные объекты определяются типом ссылочной переменной, а не типом объекта, на который она ссылается"
3. Что такое тип объекта? На какой объект ссылается ссылочная переменная?
4. И как вот понять такую фразу:"При присваивании ссылочной переменной суперкласса ссылки на объект подкласса доступ предоставляется только к указанным в ней частям объекта, определенного суперклассом." Как это, указанным частям объекта?
Спасибо, заранее...
 
S

Serduko

1. ссылочная переменная - содержит ссылку на объект, а не сам объект, соответственно если присвоить нескольким таким переменным один объект, то при изменении параметров объекта, эти изменения "отразятся" во всех переменных, независимо, обращалась программа к ним или нет.
2./3./4. Test t = new Test2(); тип ссылочной переменной Test (красный, суперкласс) ссылается на тип объекта Test2 (синий, подкласс), соответственно доступные объекты t ограничиваются Test, т.е. если в Test2 есть объект (н.р. переменная) который отсутствует в Test, ты его не увидишь.
Как то так, про суперклассы и подклассы объяснять не надо?

PS Читай книгу внимательней или возьми другую.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!