Привет Я просто хотел undertand следующее поведение .. я определил один и тот же метод - Гг() в базе и производный класс с различным доступомПолиморфизм - спецификатор доступа изменены в производном классе
Class Base
{
// some thing
**private** Integer gg(){
//return something
}
}
Class Derived{
// something
**public** Integer gg(){
//return something
}
}
В мой основной метод, когда я инициализировать переменную
Base d = new Derived()
и попытаться вызвать d.gg() он говорит Base.gg() является частным. Изменяет ли модификатор спецификатора доступа обращение метода к методу базового класса ?. Когда я изменяю спецификатор доступа gg() в базовом классе на общедоступный, он вызывает метод в классе Derived так же, как и полиморфизм.
Из того, что я прочитал о полиморфизме, его можно сделать так, чтобы спецификатор доступа был менее ограниченным в производном классе, который был здесь.
В объекте d в моем сообщении хранится ссылка на право производного класса? так и тип переменной определяет доступ для метода, а не фактический объект, на который он ссылается ?. – dasman
Хорошо, теперь я понимаю. Благодарю. – dasman
@user: Да, это точка полиморфизма! –