首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • this()和supper() [已结贴,结贴人:izhaohan]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • izhaohan
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-19 16:54:28 楼主
    在java里,子类继承父类,为什么在子类的构造函数中不能同时出现this()和supper?

    又为什么this()和supper()只能作为构造函数第一句出现呢?
    10  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • onlyadou
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 17:05:121楼 得分:0
    java FAQ
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • SARA520
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 18:20:572楼 得分:0
    这是人家语言规定的

    语法
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • SARA520
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 18:21:383楼 得分:0
    还有是super()不是supper()吧
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tdan129
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 04:50:554楼 得分:0
    呵呵.这样的问题就不要深究下去了.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • allenney
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 05:30:325楼 得分:0
    this中已经包括继承来的super了吧
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dazhen520
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 09:22:516楼 得分:0
    语法,就这么规定的.

    如果this在第一条super怎么办.

    如果super在第一条this怎么办
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Java_Chaos
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 13:50:187楼 得分:0
    继承。。super 调用父类
    this 调用自己
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Java_Chaos
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 13:53:388楼 得分:0
    我们知道在子类中可以调用父类得方法,变量。那么就说父类进行了实例化。但是我们每一次new对象得时候都是new得子类,并没有new父类。
    这是因为jvm帮我们进行了实例化父类。就是在你new子类的时候先实例化父类。
    super 和 this 代表你自己进行手动调用父类得相关构造函数。为了防止你先调用父类得方法,后实例化父类,所以jvm进行了要求,必须在子类的构造函数中第一行进行调用
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jojoqiong
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 14:24:489楼 得分:0
    可以不实用super啊,但是如果使用的话就必须为第一行,目的是告诉jvm,你要调用父类的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xiao5122122455
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 17:25:4510楼 得分:0
    语法规定,我们不能改变
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ZangXT
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 17:39:0011楼 得分:0
    都要求写在方法的第一句
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xujiaxiang
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-23 23:10:3412楼 得分:0
    规定的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sunxin1001
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-24 00:00:0313楼 得分:0
    1,不能同时用super 和 this的原因:
        super是调用父类的构造函数,this是调用本类的另外一个构造函数,而这个构造函数又要调用父类的构造函数,一个累只能调用一个构造函数,如果super和this同时使用那么就会出现在一个类中同时调用两个构造函数,怎么可能正确呢?

    2. 为什么放在第一行:
      因为初始化首先要调用父类的构造函数,对父类进行初始化,所以要放在第一行啊

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • caykaka
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-24 00:11:5114楼 得分:0
    this为当前类的引用
    super:在构造子类对象的时候要首先调用父类的构造,执行完父类构造之后才是子类,正如先有父亲再有儿子是一样的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yafeiok
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-24 11:41:5415楼 得分:10
    引用 13 楼 sunxin1001 的回复:
    1,不能同时用super 和 this的原因:
        super是调用父类的构造函数,this是调用本类的另外一个构造函数,而这个构造函数又要调用父类的构造函数,一个累只能调用一个构造函数,如果super和this同时使用那么就会出现在一个类中同时调用两个构造函数,怎么可能正确呢?

    2. 为什么放在第一行:
      因为初始化首先要调用父类的构造函数,对父类进行初始化,所以要放在第一行啊


    lz还是练练基础知识,有些东西只是规定,不必深究,就像1+1=2,呵呵,以后可不要把super写成supper呀,作为一个程序员要有严谨的习惯,慢慢来!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jay010
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-24 16:01:0516楼 得分:0
    this()和super()必须用在构造第一行,分别调用本类和父类对应构造
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zishizhilong
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 07:39:5317楼 得分:0
    引用 3 楼 SARA520 的回复:
    还有是super()不是supper()吧



    呵呵^_^
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sunshine_anycall
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 11:15:1918楼 得分:0
    因为这两个是在调用基类或者类对象自身的默认构造函数
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chaorenwopashei
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-25 13:41:2319楼 得分:0
    佩服ia,这么简单的问题,尽然来看的人不少啊,super 与this的调用都不熟悉还隆什么 啊,回家报孩子去吧
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • izhaohan
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-08 20:41:1420楼 得分:0
    牛B你妈个头!
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved