2 dzq boyka Dzq_Boyka 于 2015.07.23 09:49 提问

java基础知识问题求助

问 形如 X(父类) y=new Y(子类);
这样new出来的对象y是子类对象还是父类对象?
如果子类有重载的构造函数,那么在new的时候父类的默认构造函数还会被子类的构造函数调用么?

8个回答

devildream
devildream   2015.07.23 09:58
已采纳

你可以去了解下向上转型和向下转型的区别!

devildream
devildream 回复Dzq_Boyka: 共勉。客气了~
2 年多之前 回复
Dzq_Boyka
Dzq_Boyka 有用!
2 年多之前 回复
Dzq_Boyka
Dzq_Boyka 谢!
2 年多之前 回复
CSDNXIAON
CSDNXIAON   2015.07.23 09:53

java的一些基础知识 .
Java基础知识一
Java_计算机基础知识
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

u012534908
u012534908   2015.07.23 09:55

new 出来的当然是子类对象,但是是父类引用,即父类引用指向之类对象。 子类有重载的构造函数?构造函数是不能重载的

Dzq_Boyka
Dzq_Boyka 恩,谢!
2 年多之前 回复
u012534908
u012534908 回复Dzq_Boyka: 不好意思,刚刚看错了,子类不能重载父类的构造方法,在自己的类中可以,在子类中默认的构造函数中,都隐式地调用了super()方法,即父类默认构造函数,如果父类中没有默认的构造函数,则会报错
2 年多之前 回复
Dzq_Boyka
Dzq_Boyka 。。呵呵!!!
2 年多之前 回复
danielinbiti
danielinbiti   Ds   Rxr 2015.07.23 10:07
 这样new出来的对象y是子类对象还是父类对象?   还是子类,只是变量类型是父类而已,但指向的还是子类
如果子类有重载的构造函数,那么在new的时候父类的默认构造函数还会被子类的构造函数调用么?   如果重载后,要调用父类,通过super的方式
danielinbiti
danielinbiti 回复Dzq_Boyka: 对,调用父类的默认构造函数
2 年多之前 回复
Dzq_Boyka
Dzq_Boyka 如果父类和子类都是默认的构造函数,都没有被重载过,那么在new子类对象的时候父类的默认构造函数是会被调用的对吧?
2 年多之前 回复
tongyi55555
tongyi55555   2015.07.23 10:53

1 子类;
2 会调用的,子类创建的时候都是会隐式调用父类的构造函数的。

Dzq_Boyka
Dzq_Boyka 谢!
2 年多之前 回复
Yonk_Z
Yonk_Z   2015.07.23 11:33

第一个问题:你可以用instanceof来验证一下嘛,实践是检验真理的..........,验证完后你就会发现楼上的说的都是不准确的。。。。。
第二个问题:不管子类有没有重载自己的构造函数,都要调用父类的构造函数的,这个肯定是无疑的啊!调用时有两种情况:1..如果你自己没写调用父类中的构造函数的语句的话,那就是默认调用父类中的无参构造,2.如果你想调用父类中的被重载的构造函数的话,就用super关键字。
---------我刚学java,正在学习基础,回答的不知你清晰没?欢迎交流!

sina_2831808769
sina_2831808769   Rxr 2015.07.25 13:48

你可以去了解下向上转型和向下转型的区别!

ze631863
ze631863   2015.07.27 17:04

new出来的是子类对象,这里是由父类的引用指向子类对象

Csdn user default icon
上传中...
上传图片
插入图片