Static Binding of Private Methods
What is printed when the above program is executed?
class A {
private void secret() {
System.out.println("A secret");
}
public void reveal() {
secret();
}
}
class B extends A {
private void secret() {
System.out.println("B secret");
}
}
public class Main {
public static void main(String[] args) {
A obj = new B();
obj.reveal();
}
}
A
Compilation Error
B
A secret
B secret
C
B secret
D
A secret
Question Leaderboard
Not enough data yet to show leaderboard.
APFIVE