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();
}
}