哪三个陈述是正确的?(选择三项。)
A. 当且仅当 X 是抽象的时,类 X 中的最终方法才可以是抽象的。
B. 类 X 中的受保护方法可以被 X 的任何子类覆盖。
C. 私有静态方法只能在类 X 中的其他静态方法中调用。
D. 类 X 中的非静态公共最终方法可以在 X 的任何子类中重写。
E. 类 X 中的公共静态方法可以由 X 的子类调用,而无需显式引用类 X。
F. 与类 X 中的私有最终方法具有相同签名的方法可以在 X 的子类中实现。
G. 仅当子类与 X 位于同一包中时,类 X 中的受保护方法才能被 X 的子类覆盖。
这个问题来自 SCJP。答案是BEF
我理解 BE,但 F 说该方法是“私有最终”,那么子类如何覆盖该方法,因为它定义为最终和私有方法。
请清除F点。
答案 F 不是覆盖的示例,而是方法范围的示例。在类中声明的方法private对该类的子类不可见,因此不存在重叠;子类在超类中看不到它可以重写的方法。子类有自己的方法void foo(int),完全不知道超类的方法private void foo(int)。
| 归档时间: |
|
| 查看次数: |
7364 次 |
| 最近记录: |