黑马程序员技术交流社区

标题: 多态面试题分析 [打印本页]

作者: zhuchaofan    时间: 2015-9-16 22:06
标题: 多态面试题分析

        public class Test2DuoTai {
                        public static void main(String[] args) {
                                A a = new B();            //父类引用指向子类对象
                                a.show();//爱
                               
                                B b = new C();
                                b.show();//你
                        }
                }
/*
  *.A a = new B();           
    a.show();
  *步骤:1.b继承a,所以,编译看左边(a),运行看右边(b)
                2.左边:a中:public void show() {
                                        show2();
                                    }
                右边:子类中没有show方法,因此继承了父类的show方法,执行show2方法
                3.执行的show2方法,应该是子类的show2方法(运行看右边)
                4.结果:“爱”
  
  *B b = new C();
        b.show();
  *步骤:
  1.c继承b,所以,编译看左边(b),运行看右边c)
  2.左边:b当中没有show方法,但是,b继承了a中的show方法。
    右边:编译看右边:super.show();指向父类的show方法(也可以说是a中的show方法)
  3.执行的show2方法,应该是子类的show2方法(运行看右边)
  4.4.结果:“爱”

*/

        class A {
                        public void show() {
                                show2();
                        }
                        public void show2() {
                                System.out.println("我");
                        }
                }
                class B extends A {       //b继承a
                        public void show2() {        //调用父类的show
                                System.out.println("爱");
                        }
                }
                class C extends B {          //c继承b
                        public void show() {
                                super.show();
                        }
                        public void show2() {      //调用子类的show2
                                System.out.println("你");
                        }
                }
               





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