假设有一个类`OuterClass`,其中定义了一个方法`outerMethod`,在`outerMethod`内部定义了一个局部内部类`LocalInner`,并且`LocalInner`继承自另一个外部类`BaseClass`,`BaseClass`有一个抽象方法`abstractMethod()`。在`LocalInner`中,如果尝试直接调用`abstractMethod()`,以下哪种情况会发生?

答案解析

选项A错误,局部内部类继承抽象父类,但不能直接调用其父类的抽象方法,必须重写。选项C错误, 局部内部类没有持有父类的引用。选项D,由于局部内部类继承了抽象类,必须重写抽象方法,否则编译期就会报错。选项B正确,由于局部内部类`LocalInner`继承自`BaseClass`, 如果`BaseClass`中存在抽象方法,那么`LocalInner`必须实现这些抽象方法,否则会编译错误。
正确答案:B
随机推荐
开始刷题