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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李东城 中级黑马   /  2013-2-13 13:38  /  2268 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

为什么this语句与super语句不能存在于同一构造函数中?

错误代码:
  1. class Fu
  2. {
  3.         Fu( )
  4.         {
  5.                 System.out.println("fu run");
  6.         }
  7.         Fu(int x)
  8.         {
  9.                 System.out.println("fu:"+x);
  10.         }
  11. }

  12. class Zi extends Fu
  13. {
  14.         Zi( )
  15.         {
  16.                 System.out.println("zi run");
  17.         }
  18.         Zi(int x)
  19.         {
  20.                 this( );
  21.                 super(7);  //报错的位置。
  22.                 System.out.println("zi:"+x);
  23.         }
  24. }

  25. class ExtendsDemo
  26. {
  27.         public static void main(String[] args)
  28.         {
  29.                 Zi z1=new Zi( );
  30.                 Zi z2=new Zi(6);
  31.         }
  32. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

5 个回复

倒序浏览
因为在构造子类时,会自动的调用父类对应的构造函数,你在调用this的时候其实已经调用了super(),再调用一个super(6)就不行了。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
楼上正解
回复 使用道具 举报
super语句只能写在构造函数的第一行。
回复 使用道具 举报
一样的观点"super语句只能写在构造函数的第一行。"
回复 使用道具 举报
this 与super的权限相同,不能同时存在,因为他们不能有先后执行的关系,只能存在一个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马