Giả sử tôi có các lớp sauJava Đúc với phương pháp kêu gọi
class A{
public method(A a) {
System.out.println(3);
}
}
class B extends A{
public void method (A a) {
System.out.println(2);
}
public void method (B b) {
System.out.println(1);
}
}
A obj = new B();
obj.method((B) obj);
((B) obj).method((B) obj);
Các bản in gọi phương thức đầu tiên ra 2 trong khi in Phương pháp thứ hai gọi ra 1. Tại sao không phải cả hai phương pháp gọi là in ra 1?
Lưu ý rằng mã sẽ không biên dịch. –