LileLTP--程序之路

努力坚持走着这条路,虽然是刚刚起步……

LileLTP
LileLTP的公告
最近要看一下的书
最近评论
everest:我已经把你的博客加入了。
博客名称:everest的博客
网址:http://blog.csdn.net/everest
RSS:http://blog.csdn.net/everest/rss.aspx
everest:我加你了
烟台大苹果:已经加你了
Feng:huh...I love this song so much too......
aaa:哈哈
~~
java 很难的
文章分类
收藏
相册
.net站点收藏
asp.net入门
ASP酷
MSDN中文网站
中国DotNet俱乐部
留言与交换链接
★★★★交换链接★★★
★★★★留言板★★★★
点击直接从这里给我QQ发信息吧
网页平面
W3CHINA
我的平面作品
相册和其他
我的又一根据地
Wallop--也是根据地
我的相册
麻省理工學院開放式課程
友情链接(Blog)
driftingice
Eclipse 详细配置
sosoho's blog
vk的专栏
刘鹏小子的Blog
烟台大苹果(RSS)
猫儿左左
老康(RSS)
英雄会之强强联手
顽小鱼(RSS)
黑驴的路
友情链接(设计类)
123千克设计空间
Howe's blog
站点收藏
1.赛迪网-技术天地
2.ChinaJavaWorld
3.太平洋软件资讯
4.中国Java开发网
5.Java研究组织
6.Java中文站
7.Java爱好者
8.JSP天空
9.CnJsp
a.无忧脚本
b.UMLchina
c.Sun技术社区
d.IBM
e.中国软件开发
存档
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes

原创 有关构造方法的问题收藏

新一篇: 对象的比较 | 旧一篇: 学习Java第一课

  1. 这个是什么意思?
    默认的构造方法的功能是调用此类的父类的不带参数的那个构造方法。
    class Rock{
         Rock(int i){
            
    System.out.println("NO"+i);
          }
    }

    class SubRock extends Rock{
    }

    public class SimpleConstructor{
           public static void main(String args[]){
                    for(int i=0;i<10;i++){
                          new Rock(i);
                          }
                   }
    }

    第七行产生问题,说是父类不存在构造方法!难道Rock(int i){}这里不是建立了构造方法?
  • 问题解答:在这里我有个理解上的错误。并不是Rock(int i){}不是构造方法,而是因为建立了一个带参数的构造方法,反而覆盖了系统默认提供的构造方法。引用书上的原话就是默认的构造方法的功能是调用此类的父类中的不带参数的那个构造方法,如果父类中不存在这样的构造方法,编译时就会出错。“
  • class Rock{
         Rock(int i){
             System.out.println("NO"+i);
          }
    }
    /*
    class SubRock extends Rock{
    }
    */

    public class SimpleConstructor{
           public static void main(String args[]){
                    for(int i=0;i<10;i++){
                          new Rock(i);
                          }
                   }
    }
  • 根据上面的概念注释了中间的那部分,编译通过

发表于 @ 2004年09月03日 16:32:00|评论(loading...)|编辑

新一篇: 对象的比较 | 旧一篇: 学习Java第一课

评论

#z10181zhang 发表于2004-09-03 20:32:00  IP: 218.244.94.*
class Rock
{
Rock(int i)
{
System.out.println("No"+i);
}
}
class SubRock extends Rock
{
SubRock(int i)
{
super(i);
}
}

public class SimpleConstructor
{
public static void main(String[] args)
{
for(int i=0;i<10;i++)
{
new SubRock(i);
}
}
}
这样就好啦
#lileltp 发表于2004-09-03 20:58:00  IP: 221.204.29.*
^_^。修改不是关键。主要是概念还不清楚。菜啊。没办法。
#z10181zhang 发表于2004-09-06 21:03:00  IP: 218.244.93.*
明白啦
~_~
#LileLTP 发表于2004-09-06 22:13:00  IP: 221.204.14.*
明白就好了。^_^。
#IBIC 发表于2004-09-24 13:33:00  IP: 202.118.4.*
我的理解是:
如果有其他的类继承该类,则该类必须有一个没有参数的构造方法。
分两种情况:
1.不写,让系统默认
2.一旦写了含有参数的constructor,必须要写一个没有参数的。
#IBIC 发表于2004-09-24 13:56:00  IP: 202.118.4.*
上面的理解不正确,如果父类中没有无参数的构造方法,子类也可以引用,但是子类的构造方法中的第一句必须是super(参数),这个参数要与父类中的构造方法的参数一致。这样告诉父类,子类要引用的是父类中的带这个参数的构造方法,而不是那个默认的无参数的。
----------------------
这样理解不知是否正确,请讨论!
#LileLTP 发表于2004-09-24 21:37:00  IP: 211.250.81.*
是啊.也就是说那样覆盖了原来默认的无参数的方法.所以出错.
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © LileLTP