黑马程序员技术交流社区
标题:
java中 为什么Object类要有一个空的构造函数???
[打印本页]
作者:
徐丹
时间:
2012-11-6 20:28
标题:
java中 为什么Object类要有一个空的构造函数???
java中 为什么Object类要有一个空的构造函数???
作者:
奋斗的青春
时间:
2012-11-6 21:01
其他的类之所以可以不用给他写无参的构造函数(方法),就是因为这些类继承了Object类,也就继承了Object的构造方法。而Object是所有类的父类(基类),它没有父类,没有其他类给它继承了,所以必须要有无参的构造函数,否则不能进行Object的实例化。
作者:
崔利鹏
时间:
2012-11-6 21:07
Object类中并没有写空的构造方法,每个类没有自己定义构造方法,系统都会给它一个默认构造方法,你看的构造方法应该是在API上面看到的吧。你把Object类反编译一下
作者:
黑马吕世成
时间:
2012-11-6 21:22
这个应该是用于实例化对象的吧!跟1L说的那样
作者:
王振
时间:
2012-11-6 22:06
本帖最后由 王振 于 2012-11-6 22:08 编辑
首先有几点是需要明确的:
1、当你创建一个类时,若不明确定义构造器,系统会自动为你自定义的类提供一个无参构造器。若定义若干个构造器(无论有参还是无参),系统将不再提供默认构造器。
2、当你定义一个类继承另一个类时,子类构造器会在第一句隐式的调用父类的无参构造器。
3、当你的父类中定义了一个有参构造器时,依据第一条,父类中将不存在无参构造器,这是子类若要调用父类无参构造器就会出错。
4、当出现第3条中的情况时,你只能在子类构造器中显式调用父类中可用的构造器,才能编译通过。
考虑到以上几点,又由于Object是所有类的父类,也就是说每个类的构造器中都会隐式的调用Object的无参构造器。
这种情况下,最好的方式就是在Object中显示的定义一个无参构造器,以避免上面第3条的情况。
希望可以对你有所帮助。
作者:
蒋欣琦
时间:
2012-11-6 22:08
其他的类之所以可以不用给他写无参的构造函数(方法),就是因为这些类继承了Object类,也就继承了Object的构造方法。而Object是所有类的父类(基类),它没有父类,没有其他类给它继承了,所以必须要有无参的构造函数,否则不能进行Object的实例化。
作者:
Crondy
时间:
2012-11-6 22:21
不一定每个类都要有构造方法,取决于对业务的实现性,如果你想new 对象的时候就做初始化一批数据,肯定要有构造方法,如果不需要,则不需要构造方法,或者有里面为空……
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2