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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© DoubleUUU 中级黑马   /  2015-11-6 13:30  /  352 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class Fu{
  2.       Fu(){
  3.              super();
  4.              [color=Red]//调用的是子类的show方法,此时其成员变量num还未进行显示初始化[/color]
  5.              show();
  6.              return;
  7.       }
  8.       void show(){
  9.             System.out.println("fu show" );
  10.       }
  11. }
  12. class Zi extends Fu{
  13.        int num = 8;
  14.        Zi(){
  15.              super();
  16.              //通过super初始化父类内容时,子类的成员变量并未显示初始化,等super()父类初始化完毕后,才进行子类的成员变量显示初始化
  17.              return;
  18.        }
  19.        void show(){
  20.             System.out.println("zi show..." + num);
  21.        }
  22. }
  23. class ExtendDemo{
  24.        public static void main(String[] args){
  25.             Zi z = new Zi();
  26.             z.show();
  27.        }
  28. }
复制代码

为何父类的构造函数里面调用的是子类的show()方法,那么基于这个程序如何才能调用父类的show方法()?

1 个回复

倒序浏览
你创建子类对象,当然要调用子类的show方法了,编译看左边,执行看右边,多态那。一应该可以使用super.show()这个吧。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马