现有接口A声明方法 `void execute() throws IOException`,抽象类B实现A但未实现execute方法。类C继承B并实现execute方法。以下哪种情况会导致编译错误?
答案解析
核心考点:接口方法实现的异常声明规则。
解题思路:实现类方法抛出的异常必须是接口声明异常的子类或相同,不能更宽泛。B选项抛出Exception(IOException的父类)违反此规则。抽象类B未实现方法时,方法签名需保持与接口一致,C选项修改访问权限为protected违反重写规则。
选项分析:A正确(FileNotFoundException是IOException子类);B错误(Exception更宽泛);C错误(访问权限缩小且抽象类未实现);D正确(RuntimeException非强制性)。易错点:混淆异常类型层级和访问修饰符规则。
正确答案:B