在多态场景下,以下代码的输出结果是: interface Alpha { default void print() { System.out.print("A"); } } class Beta implements Alpha { void print() { System.out.print("B"); } } class Gamma extends Beta { void print() { super.print(); System.out.print("G"); } } 执行语句:Alpha obj = new Gamma(); obj.print();

答案解析

核心考点:接口默认方法与继承体系的调用优先级 解题思路:实例方法优先级高于接口默认方法,注意super的调用链 选项分析: -A错误:未考虑Beta类重写后替代了接口默认实现 -B正确:Gamma调用Beta的print,再追加G -C错误:遗漏Gamma自身的追加输出 -D错误:语法合法,无编译错误 易错点:可能误认为接口默认方法会被调用,实际上实例方法优先
正确答案:B
随机推荐
开始刷题