A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhuchaofan 中级黑马   /  2015-9-16 22:06  /  400 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


        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("你");
                        }
                }
               

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马