**子类中抛出的异常要小于等于父类中抛出的异常
这是正常的情况,里面运用到多态性的原理,编译看左边,运行看右边 执行的是子类中重写的方法 也就是method (子类中的方法)
如果子类抛出的异常无法被父类无法接收(也就是子类抛出的异常 大于 try catch 中的异常,那么是无法处理异常,无法接受)
throws 中抛出的异常 ,是抛给调用该方法的方法,最终还是要被处理类的**
import java.io.FileNotFoundException;
import java.io.IOException;
public class OverriedTest {
public static void main(String[] args) {
OverriedTest overriedTest = new OverriedTest();
overriedTest.display(new SuperClass());
}
public void display(SuperClass s){
try {
s.method();
} catch (IOException e) {
e.printStackTrace();
}
}
}
class SuperClass{
public void method()throws IOException{
System.out.println("hello");
}
}
class SubClass extends SuperClass{
public void method()throws FileNotFoundException{
System.out.println("hello");
}
}