S
Steve Green
This gives the expected result "AB" if the class is declared as B b or cast
to B, but when it is declared "A b" it returns "AA". Should it?
public class A {}
public class B extends A {}
public class C {
public static void main(String[] args) {
A a = new A();
A b = new B();
C c = new C();
c.print(a);
c.print(b);
}
public void print(A a) { System.out.print("A"); }
public void print(B b) { System.out.print("B"); }
}
to B, but when it is declared "A b" it returns "AA". Should it?
public class A {}
public class B extends A {}
public class C {
public static void main(String[] args) {
A a = new A();
A b = new B();
C c = new C();
c.print(a);
c.print(b);
}
public void print(A a) { System.out.print("A"); }
public void print(B b) { System.out.print("B"); }
}