如果父类中的某个方法“throws Exception”,我们能否在java中的重写方法中将其移除?


在重写父类方法时抛出异常时,你需要遵循一些规则。

  • 子类方法应抛出相同的异常或子类型异常
  • 它不应抛出超类型异常
  • 你可以在子类中不抛出任何异常而保留该方法

根据第三条规则,如果父类方法抛出某个异常,你可以在不抛出任何异常的情况下重写该方法。

示例

在下面的示例中,父类的 sampleMethod() 方法抛出了 FileNotFoundException 异常,而 sampleMethod() 方法根本没有抛出任何异常。此程序仍然可以编译和执行,没有任何错误。

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
abstract class Super{
   public void sampleMethod()throws FileNotFoundException{
      System.out.println("Method of superclass");
   }
}
public class ExceptionsExample extends Super{
   public void sampleMethod() {
      System.out.println("Method of Subclass");
   }
   public static void main(String args[]) {
      ExceptionsExample obj = new ExceptionsExample();
      obj.sampleMethod();
   }
}

输出

Method of Subclass

更新日期:07-8-2019

1K+ 浏览次数

开启你的 职业 生涯

通过完成课程来获得认证

开始吧
广告