CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

一道关于继承的问题,立即结贴。

楼主Raulgodle(赵蓓)2004-12-02 22:45:09 在 Java / Web 开发 提问

1.     class   Super2   {    
  2.         public   int   i   =   0;    
  3.        
  4.         public   Super2   (String   text)   {  
  5.             i   =   1;  
  6.         }  
  7.     }  
  8.  
  9.     public   class   Sub   extends   Super2   {  
  10.       public   Sub   (String   text)   {  
  11.           i   =   2;  
  12.       }  
  13.    
  14.       public   static   void   main   (String   args[])   {  
  15.           Sub   sub   =   new   Sub   ("Hello");  
  16.           System.out.println(sub.i);  
  17.       }  
  18.   }    
   
  如果这么写,就会在第10行出现编辑错误,而如果在Sub的构造函数中这么写:  
  public   Sub(String   text)  
        {  
            super(text);  
            i   =   2;  
        }  
  就会没有错误,能够正确运行。  
  问:为什么该子类中必须要用super(text)调用一下父类的构造函数,不调不行?  
  问题点数:20、回复次数:3Top

1 楼happysmiler(笑开心)回复于 2004-12-02 22:51:05 得分 15

因为子类对象在创建的时候,首先去调用父类的无参构造函数。而父类构建了有参构造函数后,其默认的无参失效。因此出错。你可以显式的在父类里加上无参空构造函数。可运行Top

2 楼123xxx(香克斯)回复于 2004-12-02 22:54:23 得分 0

同上Top

3 楼catblue(佛家说:一粒沙中看世界。)回复于 2004-12-03 09:44:58 得分 5

super(text)是生成父类,没有父就没有子嘛。  
  你可以在父类中再写一个不带参数的构造函数,这样在子类中就不需要调用父类的构造函数了,因为这样系统会自动调用默认的(不带参数的构造函数)。Top

相关问题

  • 关于引用传递/继承,解决问题,立即结贴
  • 一道scjp的题目?立即结帐!!!!!
  • 我有一道OOP的题目,要用到继承。谁能......?
  • 请教大家一道scjp的继承(is a)的问题?
  • 有关继承的一道题目,请帮忙解答。
  • 100分求解一道C++类继承的作业题
  • 类继承的问题(马上结贴)
  • 类的继承问题,立即接贴!简单....
  • 继承
  • 继承

关键词

  • 函数
  • 构造函数
  • 父类
  • 子类
  • 调用
  • super
  • sub
  • 无参
  • text

得分解答快速导航

  • 帖主:Raulgodle
  • happysmiler
  • catblue

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo