黑马程序员技术交流社区
标题:
关于继承和构造的问题
[打印本页]
作者:
y200745
时间:
2014-7-22 00:19
标题:
关于继承和构造的问题
最近,在继承的构造函数中,出现了一个问题:
代码如下:
public class Parent
{
public Parent()
{
System.out.println(this);
}
}
class child extends Parent
{
public child()
{
super();
}
public static void main (String []args)
{
child a=new child();
}
}
复制代码
问题是,我执行改代码的时候,在父类的构造函数中,为什么输出的是子类对象呢?也就是this为什么代表子类啊?求大神?????
这个是我的运行结果:
child@3771ed5e
作者:
a6511631
时间:
2014-7-22 08:52
在这里会出现这个现象是super()语句的关系。super()会访问父类中空参数的构造函数。同时传递过来的就是子类对象,这个时候this指向的就是子类对象
作者:
star5603
时间:
2014-7-22 09:51
this就是代表对象,你创建了子类对象,那this当然指向子类。
无参构造函数被调用,你不写super();也会被调用,那输出的this,就是子类。
作者:
渴望学习
时间:
2014-7-22 10:48
this.指的是本类对象的引用。因为你创建的对象是Child ,根本没有创建Parent对象,只好去子类里面找对象了。
代码上楼主可以这么理解
把子类中的super() 换成
public Parent()
{
System.out.println(this);
}
这样就明白了吧,
作者:
Adjin
时间:
2014-7-22 12:21
this代表的是对象的引用,你的对象是子,当然是子啦
作者:
爷丶 う
时间:
2014-7-22 12:45
哪个对象在使用有 this 的代码, this 就代表哪个对象,所以 this 代表子类!
作者:
y200745
时间:
2014-7-22 12:50
爷丶 う 发表于 2014-7-22 12:45
哪个对象在使用有 this 的代码, this 就代表哪个对象,所以 this 代表子类!
精辟,居然把这个给忘了,奶奶的。学乱了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2