Wymagane jest objaśnienie wyjścia fragmentu kodu Java
Mój kod to:
class Foo {
public int a=3;
public void addFive() {
a+=5;
System.out.print("f ");
}
}
class Bar extends Foo {
public int a=8;
public void addFive() {
this.a += 5;
System.out.print("b ");
}
}
public class TestClass {
public static void main(String[]args) {
Foo f = new Bar();
f.addFive();
System.out.println(f.a);
}
}
Wydajność:
b 3
Proszę mi wyjaśnić, dlaczego wyjście dla tego pytania „b 3”, a nie „b 13”, ponieważ metoda została zastąpiona?