Bất cứ ai có thể giải thích cho tôi về kết quả của việc thực thi này không? Tôi không thể nhận thấy tại sao mỗi phương pháp được gọi. Và cách chúng tôi phân biệt loại thực so với loại rõ ràng. Cảm ơn bạn :)Thừa kế trong Java, loại rõ ràng so với loại thực tế
public class JavaApplication15 {
public static void main(String[] args) {
A a = new A();
B b= new B();
A ab = new B();
b.f(a);
b.f(b);
b.f(ab);
}
}
public class A {
private final String id="A";
public void f(A x){
System.out.println("Send a fax to "+ x) ;
}
public String toString(){return id;}
}
public class B extends A{
private final String id="B";
public void f(B x){
System.out.println("Send an email to"+ x) ;
}
public String toString(){return id;}
}
Kết quả:
Send a fax to A
Send an email to B
Send a fax to B