package privatePkg;
class privateImp {
private void print() {
System.out.println("Inside the PrivateImp class method "+this);
}
public void access() {
print();
}
}
class SubClass extends privateImp {
public static void main(String ... args) {
System.out.println("In the subclass");
SubClass sb = new SubClass();
sb.access();
}
}
Здесь метод print() объявлен закрытым в суперклассе PrivateImp, и мы расширяем этот класс. Когда я создаю объект подкласса и пытаюсь получить доступ к унаследованному методу access(), он также вызывает частный метод суперкласса. Поскольку это частный метод, к нему не следует обращаться из других классов, но доступ к нему могут получить только члены этого класса. Тогда как частный метод был вызван методом access() для объекта подкласса?
Скажите, пожалуйста, поскольку я не переопределил метод access(), унаследованный от суперкласса, заменит ли компилятор строку внутри accesss() в подклассе следующим образом:
class SubClass extends privateImp() {
public void access() {
super.access();
}
}
Подробнее здесь: https://stackoverflow.com/questions/632 ... -reference