黑马程序员技术交流社区
标题:
构造器Constructor是否可被override?
[打印本页]
作者:
16463535
时间:
2013-4-18 13:39
标题:
构造器Constructor是否可被override?
本帖最后由 16463535 于 2013-4-19 11:09 编辑
通过学习张老师的视频,我有一个这样的问题。
构造器Constructor是否可被override?
作者:
HM张健
时间:
2013-4-18 15:33
构造器不能被继承 不能重写 但可以重载 Overload
作者:
hacket
时间:
2013-4-18 17:46
class Father
{
public Father()
{
System.out.println("父亲默认构造方法");
}
public Father(String father)//重载的构造方法
{
System.out.println("父亲有参构造方法");
}
}
class Son extends Father
{
public Father()
{
System.out.println("儿子可否重写父亲构造方法?");
}//不能重写父类构造方法,方法声明无效;需要返回类型
}
复制代码
作者:
zhuiyi0819
时间:
2013-4-18 19:29
子类构造器一定会调用父类构造器。
先父类、后子类!
当new子类对象时(省去了加载):
所有属性(父类和子类)都赋值为默认值
父类的构造代码块和父类的显示初始化语句
父类构造器的代码
子类的构造代码块和子类的显示初始化语句
子类的构造器代码。
当加载子类时:
所有静态属性(子类和父类)都赋值为默认值
执行父类的静态块和静态显示初始化语句
执行子类的静态块和静态显示初始化语句
1 父类子对象
每个子类对象都有一个父类对象,这个父类对象帮助子类完成父类所有的功能!
2 super关键字(在子类中访问父类成员的通道)
super.方法,直接去找父类中的。
this.方法,先在子类中找,找不到再去父类中去找。
3 初始化父类子对象
子类构造器,无论如何都会去调用父类构造器。
4 隐式和显示调用父类构造器
什么时候隐式调用父类构造器
没有使用this调用语句,也没有使用super调用语句,那么就隐式调用父类的无参构造器。
如果使用了this调用语句,就不会隐式调用父类构造器,也不能再加super调用语句。
如果加了super调用语句,那么就是显式调用父类构造器,而不是隐式调用了。这时也不能再加this调用语句了。
5 什么时候必须使用super
当引用父类属性和父类方法时,而子类中有同名属性或相同方法时,那么就一样要使用super。
super调用语句!
6 什么时候可以使用super
super调用语句。
引用父类的方法和属性时。
父类中private的东西,是子类使用不了的。
override是用来重写父类中的方法以及重写本类和object的toString()方法。
不能重写Overriding,但可以被重载Overloading。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2