200+ câu trắc nghiệm Java cơ bản có đáp án - Phần 8

Đoạn mã sau có lỗi biên dịch nào? class Student { public int getAge(){ return 10; } } public class Man extends Student{ public double getAge() { return 11.2; } } Chọn một Câu trả lời

18/30

Đoạn mã sau có lỗi biên dịch nào?

class Student {

public int getAge(){

return 10;

}

}

public class Man extends Student{

public double getAge() {

return 11.2;

}

}

Chọn một Câu trả lời

Có lỗi biên dịch:getAge() in Man cannot override getAge() in Student return type int is not compatible with java.lang.int

Không có lỗi biên dịch.

Có lỗi biên dịch:getAge() in Man cannot override getAge() in Student because it is final

Có lỗi biên dịch:getAge() in Man and in Student has the same access modifier

Giải thích

Chọn đáp án A

Vì:

lớp Man định viết đè getAge() được viết ở Student, nhưng có kiểu dữ liệu trả về là double không thể chuyển thành int được. Nên đáp án B sai. Và getAge() không được đánh dấu là final, nên có thể được ghi đè, nên đáp án C là sai. getAge() ở cả hai lớp đều có cùng access modifier, điều này là hợp lệ. Nên đáp án D là sai.