黑马程序员技术交流社区

标题: 交流一下 [打印本页]

作者: why910107    时间: 2016-6-12 21:41
标题: 交流一下
27.查看下面代码:
class A {
public int i = 10;
   }
   class B extends A{
                   public int i = 20;
   }
public class Test{
           public static void main(String args[]){
              B b = new B();
               A a = b;       
        System.out.println(b.i);
        System.out.println(a.i);
    }
}
输出为多少 ( )
   A.10 10   
   B.10 20     
   C.20 10   
   D.20 20
作者: lifeiwangyue    时间: 2016-6-12 21:58
20,10                                       
作者: 醇逸    时间: 2016-6-12 22:29
答案C
我又测试了如下代码:
                A a1=new B();
                B b1=(B) a1;               
                System.out.println(b1.i);
                System.out.println(a1.i);
结果还是C。
所以,不管事向上转型还是向下转型,多态中成员方法仍是【编译看左,运行看左】。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2