黑马程序员技术交流社区
标题:
弱弱的问一个关于继承的问题
[打印本页]
作者:
高浩
时间:
2013-1-11 22:37
标题:
弱弱的问一个关于继承的问题
本帖最后由 张向辉 于 2013-1-16 12:33 编辑
如果存在继承,如果 创建子类对象时,程序该是如何的执行过程,详细的告诉我一下?
劳烦各位了!
作者:
黑马王振宇
时间:
2013-1-11 22:47
在对子类对象进行初始化时,父类的构造函数也会运行,
那是因为子类的构造函数默认第一行有一条隐式的语句 super();
super():会访问父类中空参数的构造函数。而且子类中所有的构造函数默认第一行都是super();
子类的实例化过程中,子类的所有的构造函数,默认都会访问父类中空参数的构造函数。
因为子类每一个构造函数内的第一行都有一句隐式super();
当父类中没有空参数的构造函数时,子类必须手动通过super语句形式来指定要访问父类中的构造函数。
作者:
张云杰
时间:
2013-1-11 23:11
http://bbs.itheima.com/thread-36239-1-1.html
传送门 已经很清楚了
作者:
林其荣
时间:
2013-1-11 23:37
子类来源于父类,子类的构造方法总是先调用父类的构造方法 当子类的构造方法构建对象时,首先执行父类的构造方法,然后才执行子类的构造方法
因为在子类的构造函数有个隐式的语句super(); 这个隐式的super()语句就会访问父类中的空参数的构造函数
如果父类中有定了有参的构造函数的话 在子类的构造方法的第一条语句指定一个匹配带参的super语句来访问父类的构造函数
例:class A{
public A(){//先初始化父类的构造函数
System.out.println("父类构造函数");
}
}
class B{
public B(){//再初始化子类的构造函数
//super();隐式构造函数 注:如果父类是有参的构造函数那必须重定义一个和父类构造函数匹配的super();
System.out.println("子类构造函数");
}
}
作者:
高浩
时间:
2013-1-13 16:00
谢谢大家帮助
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2