JavaScript is required

Đoạn mã sau in ra màn hình xâu ký tự nào sau:
class Student {
public String sayHello() {
return "Student";
}
}
public class Man extends Student {
public String sayHello() {
return super.sayHello();
}
public static void main(String[] args) {
Student m = new Student();
System.out.println(m.sayHello());
}
}

A.
Student
B.
Man
C.
Student Man
D.
Man Student
Trả lời:

Đáp án đúng: B


Đoạn mã tạo một lớp `Student` có phương thức `sayHello()` trả về chuỗi "Student". Sau đó, tạo một lớp `Man` kế thừa từ `Student` và ghi đè phương thức `sayHello()` bằng cách gọi phương thức `sayHello()` của lớp cha (Student) thông qua `super.sayHello()`. Trong phương thức `main()`, một đối tượng `m` của lớp `Student` được tạo và phương thức `sayHello()` của đối tượng này được gọi. Vì `m` là một đối tượng của lớp `Student` chứ không phải `Man`, nên phương thức `sayHello()` của lớp `Student` sẽ được gọi, và nó sẽ trả về chuỗi "Student". Do đó, chương trình sẽ in ra "Student".

Câu hỏi liên quan