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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

郭运明

黑马帝

  • 黑马币:0

  • 帖子:19

  • 精华:0

© 郭运明 黑马帝   /  2011-9-29 17:15  /  1725 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

当子类继承父类后,子类的构造函数可不可以和父类不一样

8 个回复

倒序浏览
黑马网友  发表于 2011-9-29 17:19:15
沙发
你说的意思不是很明白???既然是构造函数,函数名肯定是和类名是一样的。但是在子类构造的过程中,一定要调用父类的构造方法(默认会调用无参的构造函数,没有的话,编译会出错)。

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-29 17:26:16
藤椅

回复 楼主 的帖子

构造函数不能继承,只是调用而已。
回复 使用道具 举报
黑马网友  发表于 2011-9-29 17:28:28
板凳
子类的构造函数和父类的本来就是2个吧, 但是可以用父类来直接构造子类
回复 使用道具 举报
黑马网友  发表于 2011-9-29 17:39:33
报纸

构造函数的调用

可以!子类可以用super()方法调用父类的构造函数。
回复 使用道具 举报
黑马网友  发表于 2011-9-29 18:10:04
地板
子类可以和父类的构造函数不一样,父类的构造函数不能被子类继承,因为子类继承父类的时候,先运行父类构造函数;具体的说就是运行父类时就会先“调用”父类的构造函数,调用和继承是不同的,继承的含义其实是“扩展”,子类完全没必要扩展父类的构造函数,因为反正每次调子类的时候都会“自动运行”它父类的构造函数,如果真的需要子类构造函数特殊的形式,子类直接修改或重载自己的构造函数就好了,所以子类不能继承父类的构造函数,那必须可以和父类的构造函数不同。

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-29 18:22:28
7#
可以,还可以重载
回复 使用道具 举报
黑马网友  发表于 2011-10-1 19:29:33
8#
1. 可以不一样的。举个简单的例子,假设父类Class Parent中不去定义构造函数。
2. 创建子类Class Child extends Parent, 在其中定义 Child(int n)的构造函数。
3. 那么在Child(int n)中的第一行,实际隐含着super(); 也就是调用父类默认的构造函数。
4. 但此时可以发现,子类的构造函数是Child(int n),而父类的却是默认的Parent(),二者并不同。

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

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