Mọi người có thế giải thích cho e biết việc ép kiểu trong java thực hiện như thế nào được không ạ.
ví dụ như đoạn code này
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone {
public static void main(String arg [] ) {
Person p = new Person();
Employee e = new Employee();
Manager m = new Manager();
Person pArr[] = {p, e, m};
for (int i=0; i< pArr.length; i++){
System.out.println(pArr[i].getDetail());
}
}
}
class Person {
public String getDetail(){
return "Person";
}
}
class Employee extends Person{
@Override
public String getDetail(){
return "Employee";
}
}
class Manager extends Employee{
@Override
public String getDetail(){
return "Manager";
}
}
kết quả ra là:
Person
Employee
Manager
e nghĩ là khi 3 thằng kia đã bị ép kiểu thành Person rồi thì khi gọi phương thức getDetail thì nó phải gọi của class Person chứ nhỉ.
Mong mọi người giải thích hộ e, nếu có thể có thế giải thích luôn quá trình java làm việc khi gặp trường hợp như thế này luôn được k ạ.