阅读下面程序,写出指定语句的输出结果,并解释原因。 public class Test_Hide_Override { public static void main(String... args){ A o = new C(); o.m1(); //① o.m2(); //② ((B)o).m1(); //③ ((A)(B)o).m1(); //④ ((A)(B)o).m2(); //⑤ } } class A{ public static void m1(){ System.out.println("A's m1"); } public void m2(){ System.out.println("A's m2"); } } class B extends A{ public static void m1(){ System.out.println("B's m1"); } public void m2(){ System.out.println("B's m2"); } } class C extends B{ public static void m1(){ System.out.println("C's m1"); } public void m2(){ System.out.println("C's m2"); } } 语句②的输出结果为 ,原因是
时间: 2023-06-02 21:03:49 浏览: 83
输出结果为"B's m2",因为在对象o中,m2是一个非静态方法,调用的是对象o的m2方法,由于对象o是类C的实例,所以调用的是C类中的m2方法。而m2方法被类B和类A继承并重写了,但由于对象o是C类的实例,所以只有C类中的m2方法会被调用。
阅读全文