Java SE 8 Oracle Certified Associate 1Z0-808 - #5
1. Câu hỏi
2. Phân tích
Đây thực sự là 1 câu hỏi khó, cần cả kiến thức về kế thừa, override, hiểu về Exception và các lớp con của nó, hiểu
- Phân tích Sub class Sub class kế thừa Super class, trong method m1() , throw new FileNotFoundException() hoàn toàn hợp lệ vì FileNotFoundException là class con của IOException https://docs.oracle.com/javase/8/docs/api/java/io/FileNotFoundException.html
abstract class Super {
public abstract void m1() throws IOException;
}
class Sub extends Super {
@Override
public void m1() throws IOException {
throw new FileNotFoundException();
}
}
- Phân tích code trong hàm main Biến s có kiểu dữ liệu Super, hàm m1 trong đó khai báo throw IOException, nhưng trong catch chỉ bắt FileNotFoundException -> Compilation error
Super s = new Sub();
try {
s.m1();
} catch (FileNotFoundException e) {
System.out.print("M");
} finally {
System.out.print("N");
}
Đáp án:
3. Kết luận
Bạn có thể gõ code vào IDE để chạy lại và kiểm tra Source cho câu hỏi
All rights reserved