E chào mọi người, em cần sự trợ giúp giải đáp thắc mắc khi sử dụng từ khóa: instanceof
trong Java ạ.
E có tạo 2 lớp: Class Dog
và Class Triangle
Đối với cụm lệnh đầu tiên thì câu lệnh kiểm tra lại bị lỗi biên dịch:
Dog d = new Dog();
Triangle t = new Triangle();
System.out.println(d instanceof Triangle);
//lỗi biên dịch (Compilation Error)
Đối với cụm lệnh thứ hai thì lại không xảy ra lỗi biên dịch và khi chạy sẽ có kết quả là false
Object obj1 = new Dog();
Object obj2 = new Triangle();
System.out.println(obj1 instanceof Triangle);
//trả về kết quả là false khi chạy
Em thắc mắc là tại sao câu lệnh đầu tiên nó lại thông báo lỗi biên dịch và không cho chạy. Trong khi đó cụm lệnh thứ hai rõ ràng khi kiểm tra đối tượng obj1 cũng không phải là thể hiện của Class Triangle
mà nó lại không báo lỗi biên dich mà chạy được ra kết quả là false. Mong mọi người có thể giải thích giúp em. Cảm ơn mn rất nhìu !!!