При обработке исключений известно, что, если метод суперкласса не объявляет исключение, переопределенный метод подкласса не может объявить проверенное исключение, но может объявить непроверенное исключение.Почему так?рассмотрим следующий пример:
import java.io.*;
class Parent {
void msg() {
System.out.println("parent");
}
}
class TestExceptionChild extends Parent {
void msg() throws IOException {
System.out.println("TestExceptionChild");
}
public static void main(String args[]) {
Parent p = new TestExceptionChild();
p.msg();
}
}
Что я пробовал:
Мы получаем ошибку компиляции здесь.Если мне нужно прочитать файл в переопределенном методе "msg", то я должен упомянуть "throws IOException" там.Но Java не позволяет им.Кто-нибудь может объяснить это?