У меня есть путаница с использованием частных методов в наследовании, например:
public class A {
private void say(int number){
System.out.print("A:"+number);
}
}
public class B extends A{
public void say(int number){
System.out.print("Over:"+number);
}
}
public class Tester {
public static void main(String[] args) {
A a=new B();
a.say(12);
}
}
Основываясь на приведенных выше кодах, я запутался в наследовании частного метода, наследуется ли частный метод от class A
до B
? Или методы say в обоих классах совершенно не связаны? Поскольку код имеет ошибку при выполнении в методе main(), кажется, что class B
не может вызвать частный метод из class A
.
A
не имеет общедоступного методаsay()
, поэтому эта программа не должна компилироваться. Если вы форсируете это с помощью((B)a).say(12)
, то так и будет. - person Apprentice Queue   schedule 19.10.2013