运行如下代码: class COne { public void f() { System.out.println("COne.f"); } } class CTwo extends COne{ public void f() { System.out.println("CTwo.f"); } } class CThree { public void g(COne one) { System.out.println("g(Cone)"); one.f(); } public void g(CTwo two) { System.out.println("g(Ctwo)"); two.f(); } } public class Main { public static void main(String[] args) { COne one = new CTwo(); CThree three = new CThree(); three.g(one); } } 控制台输出的结果是( )。 A. g(Cone) CTwo.f B. g(Cone) COne.f C. g(Ctwo) CTwo.f D. g(Ctwo) COne.f
时间: 2023-05-11 12:05:28 浏览: 137
代码运行结果
答案是 C. g(Ctwo) CTwo.f。因为在 main 函数中,创建了一个 CTwo 类型的对象 one,并将其赋值给了 COne 类型的变量 one。然后,创建了一个 CThree 类型的对象 three,并调用了它的 g 方法,传入了 one。由于 one 是 CTwo 类型的对象,所以会调用 g(CTwo two) 方法,输出 g(Ctwo) 和 CTwo.f。
阅读全文