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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bushangkoukou 中级黑马   /  2013-6-4 19:39  /  1315 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 bushangkoukou 于 2013-6-5 16:11 编辑

class Fu
{
        Fu()
        {
                System.out.println("fu run");
        }
        Fu(int x)
        {
                System.out.println("fu...****..."+x);
        }
}

class Zi extends Fu
{
        Zi()
        {
        
        //super();
                System.out.println("zi run");
        }
        Zi(int x)
        {
        super(x);   //问题是这里为什么只能写super(x)而不能写super(int x)??????
                System.out.println("zi..."+x);
        }
}

class  ExtendsDemo2
{
        public static void main(String[] args)
        {
                Zi z = new Zi();
                Zi z1= new Zi(4);
        }
}

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

3 个回复

倒序浏览
super(x)就是相当于调用一个函数,你见过调用函数的时候还要传入int吗?
回复 举报
super代表的是父类的对象的引用,就像正常定义一个对象一样
如定义父类对象:Fu f=new Fu(x);
就没有写错new Fu(int x);的写法吧
对于super()就同理了

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

回复 举报
汗,我又来了

  1. class Fu
  2. {
  3.         Fu()
  4.         {
  5.                 System.out.println("fu run");
  6.         }
  7.                 //这里定义的数接收的是子类中super传递的值,故可以定义成任何变量名.
  8.         Fu(int y)
  9.         {
  10.                 System.out.println("fu...****..."+y);
  11.         }
  12. }

  13. class Zi extends Fu
  14. {
  15.         Zi()
  16.         {
  17.         
  18.         //super();
  19.                 System.out.println("zi run");
  20.         }
  21.         Zi(int x)
  22.         {
  23.         super(x);   //问题是这里为什么只能写super(x)而不能写super(int x)??????
  24.                 /*
  25.                         new Zi(4)=>Zi(int x)
  26.                                                           |
  27.                                                 super(x)=>Fu(int x)
  28.                         建立Zi(4)对象后,将4作为实际参数传给子类构造函数中的x,之后x传递给super中的x
  29.                         super(x)就相当于Fu(int x),将4传给父类构造函数中的y
  30.                        
  31.                 */
  32.                 System.out.println("zi..."+x);
  33.         }
  34. }

  35. class  ExtendsDemo2
  36. {
  37.         public static void main(String[] args)
  38.         {
  39.                 Zi z = new Zi();
  40.                 Zi z1= new Zi(4);
  41.         }
  42. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

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