Имам объркване относно използването на частни методи в наследяването, например:
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