黑马程序员技术交流社区

标题: 一个类的缺省构造函数可以有参数吗 [打印本页]

作者: 李瑞    时间: 2013-4-26 22:32
标题: 一个类的缺省构造函数可以有参数吗
一个类的缺省构造函数可以有参数吗
如题求解
作者: 杨同旺    时间: 2013-4-26 22:35
缺省的构造函数,是空参的
作者: 蔚蓝小嗨    时间: 2013-4-26 22:48
一个类中如果没有构造函数,会默认的有一个空参数的构造函数
作者: 袁梦希    时间: 2013-4-26 22:51
楼主你好

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

作者: 韩冬    时间: 2013-4-26 22:53
缺省的构造函数应该不可以有参数,因为默认的是空参数,你下面对象如果带有参数,就出现不匹配而报错,另外,即便不缺省,下面的对象参数也不得多于类中。菜鸟,请轻拍。{:soso_e100:}
作者: 黄玉昆    时间: 2013-4-27 22:36
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
作者: 曾德强    时间: 2013-4-27 22:49
缺省的构造函数就是无参数的,如果要定义有参数的构造函数,就是重载了,不叫缺省了;
作者: 肖宇宥    时间: 2013-4-27 23:21
如果,给个参数,就会将默认的构造方法覆盖了。可以给个无参构造方法和有参构造方法,形成重载
作者: hyw840705183    时间: 2013-4-28 18:42
Java这个构造函数和C++中的构造函数有类似之处,如果没有定义构造函数的话,编译器会自动生成个默认无参的构造函数,但在Java里把构造函数看成一个构造器,则默认构造函数也就是默认构造器(又名“无参”构造器)。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2