java中 为什么Object类要有一个空的构造函数???

有人说是为了子类继承,继承时会先调用父类空的构造函数,但是Object类不写空的构造函数的话,编译器不是会自动给它加一个空的构造函数么,所以Object类不需要有空的构造... 有人说是为了子类继承,继承时会先调用父类空的构造函数,但是Object类不写空的构造函数的话,编译器不是会自动给它加一个空的构造函数么,所以Object类不需要有空的构造函数,因为它只有一个构造函数,可以不写。。。 展开
 我来答
cselmu09
推荐于2017-11-25 · 超过10用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:25.1万
展开全部
其他的类之所以可以不用给他写无参的构造函数(方法),就是因为这些类继承了Object类,也就继承了Object的构造方法。而Object是所有类的父类(基类),它没有父类,没有其他类给它继承了,所以必须要有无参的构造函数,否则不能进行Object的实例化。
更多追问追答
追问
不大明白,按你的意思,其他类不写构造函数编译器给它加的空的构造函数是由Object类而来的吗??编译器会添加一个空的构造函数是由于父类有空的构造函数的关系吗????
Object类为什么编译器不会自动给它加一个空的构造函数???
追答
是从Object类继承而来的!而编译器不会给Object自动加一个空的构造函数是因为Object是最顶层的基类,他没有父类了。它如果不写这个空的构造函数的话,编译器是不能凭空给它加一个构造函数的。也就是说平时大家说的不写构造函数的情况下编译器会自动个这个类加一个空的构造函数是因为他有父类Object,而且Object类中还有这么一个空的构造函数。
NoGrief
2012-11-05 · TA获得超过253个赞
知道小有建树答主
回答量:304
采纳率:100%
帮助的人:220万
展开全部
构造函数是为了创建对象的实例用的,没有构造函数的对象是无法创建实例的,我们所有的类,都默认继承了Object类,如果自己的类没有构造方法,在创建实例的时候,默认调用的就是父类(Object)的构造方法,所以不是写不写的问题,是规范就是这样的。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
没有响应m2
2012-11-05 · TA获得超过8387个赞
知道大有可为答主
回答量:7579
采纳率:33%
帮助的人:3505万
展开全部
构造函数的话
如果一个类没有构造函数的话那么编译器会自动给它加一个没有参数的构造函数
但是只要有一个有参数的构造函数的话 编译器就不会自动添加了

子类继承,继承时会先调用父类空的构造函数 这个是不完全对的 你可以在子类构造函数的第一行用super() 来选择调用具体父类的那一个构造方法 根据super(这里的参数)

至于你说的Object类的话确实可以没有 编译的时候会自动加一个 不过写一个空的也没关系...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhuoqi0202
2012-11-06
知道答主
回答量:10
采纳率:0%
帮助的人:1.5万
展开全部
你去看看他源码吧,Object类中并没有写空的构造方法,每个类没有自己定义构造方法,系统都会给它一个默认的空构造。你看的的构造方法应该是在API上面看到的吧。你把Object类反编译一下。
追问
如果没有,API上为什么会写出来???
追答

这是反编译出来的object类。因为没有定义其他的构造,系统会给他个默认的空构造

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8cb9b74
2012-11-05
知道答主
回答量:30
采纳率:0%
帮助的人:19.2万
展开全部
Object的空构造必须写!
自己定义的类不写构造默认有一个空构造方法是因为默认都是继承了Object,所以自己的类默认会调用Object的构造,所以才可以不写空的构造!
追问
这不对吧,自定义类没有写构造函数时编译器默认会给它加一个空的构造函数,怎么会是调用Object类的呢?
追答
因为所有的类都是继承于Object类的,你可以查一下DOC文档
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式