Đoạn mã sau có lỗi biên dịch nào? class Student { public String sayHello() { return "Student"; } } public class Man extends Student { public String sayHello() { return "man"; } pub...
Đoạn mã sau có lỗi biên dịch nào? class Student { public String sayHello() { return "Student"; } } public class Man extends Student { public String sayHello() { return "man"; } public static void main(String[] args) { Man m = new Student(); System.out.println(m.sayHello()); } }
A. Có lỗi biên dịch:Incompatible type, requiered Man, found Student.
B. Không có lỗi biên dịch. In ra màn hình "man"
C. Có lỗi biên dịch:access modified of sayHello in Student and Man are different
D. Không có lỗi biên dịch. In ra màn hình "student"
* Đáp án
* Hướng dẫn giải
Chọn đáp án A.Vì:m thuộc lớp Man, nhưng lại dùng để trỏ đển đối tượng của Student mà Man không phải là lớp con của Student. Và access modified của cùng phương thức ở lớp con chỉ cần mạnh hơn hoặc bằng cảu lớp cha la được.