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. И как вот понять такую фразу:"При присваивании ссылочной переменной суперкласса ссылки на объект подкласса доступ предоставляется только к указанным в ней частям объекта, определенного суперклассом." Как это, указанным частям объекта?
Спасибо, заранее...
Вот отрывок из книги: "Важно понимать, что доступные объекты определяются типом ссылочной переменной, а не типом объекта, на который она ссылается. То есть при присваивании ссылочной переменной суперкласса ссылки на объект подкласса доступ предоставляется только к указанным в ней частям объекта, определенного суперклассом."
У нас к примеру существует два класса 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. И как вот понять такую фразу:"При присваивании ссылочной переменной суперкласса ссылки на объект подкласса доступ предоставляется только к указанным в ней частям объекта, определенного суперклассом." Как это, указанным частям объекта?
Спасибо, заранее...