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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李瑞 中级黑马   /  2013-4-26 22:32  /  4994 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一个类的缺省构造函数可以有参数吗
如题求解

评分

参与人数 1技术分 +2 收起 理由
黄玉昆 + 2 新人鼓励

查看全部评分

8 个回复

倒序浏览
缺省的构造函数,是空参的
回复 使用道具 举报
一个类中如果没有构造函数,会默认的有一个空参数的构造函数

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
楼主你好

缺省显得太专业了,咱们用大白话说,就是说默认就行,
在类中,默认的构造方法是无参数的,如果类中定义了有参的构造函数而没定义无参的构造函数,
发现子类构造函数运行时,先运行了父类的构造函数。为什么呢?
原因:子类的所有构造函数中的第一行,其实都有一条隐身的语句super();
super(): 表示父类的构造函数,并会调用于参数相对应的父类中的构造函数。而super():是在调用父类中空参数的构造函数。
为什么子类对象初始化时,都需要调用父类中的函数?(为什么要在子类构造函数的第一行加入这个super()?)
因为子类继承父类,会继承到父类中的数据,所以必须要看父类是如何对自己的数据进行初始化的。所以子类在进行对象初始化时,先调用父类的构造函数,这就是子类的实例化过程。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报 1 0
缺省的构造函数应该不可以有参数,因为默认的是空参数,你下面对象如果带有参数,就出现不匹配而报错,另外,即便不缺省,下面的对象参数也不得多于类中。菜鸟,请轻拍。{:soso_e100:}

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 鼓励鼓励

查看全部评分

回复 使用道具 举报
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
回复 使用道具 举报
缺省的构造函数就是无参数的,如果要定义有参数的构造函数,就是重载了,不叫缺省了;
回复 使用道具 举报
如果,给个参数,就会将默认的构造方法覆盖了。可以给个无参构造方法和有参构造方法,形成重载

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
Java这个构造函数和C++中的构造函数有类似之处,如果没有定义构造函数的话,编译器会自动生成个默认无参的构造函数,但在Java里把构造函数看成一个构造器,则默认构造函数也就是默认构造器(又名“无参”构造器)。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

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