java constructor 在构造子类时,一定会调用到父类的构造方法

sub class must call base class's constructor
sub class will invoke base class's constructor implicityly
if super constructor is undefined, must explicitly invoke another constructor

子类以一定要调用到父类方法。
子类可以隐式的调用父类默认的构造方法。
如果父类没有默认构造方法,必须显示调用。


Constructor call must be the first statement in the constructor
super() or this(...)
super和this要在第一个statement,不能被同时调用

default constructor is equivalent to the following code
public ASubClass(){
super();
}
默认构造函数会调用父类构造方法

if no constructor defined, compiler will create a default one
如果没有默认构造函数,compiler会帮忙生成一个

转载个例子:
class A{
public A(){} // 1:无参数构造方法。
public A(String s){} // 2.
}

class B extends A{
public B(String s){
super(s); // 3.
}
}


记住一点:在构造子类时,一定会调用到父类的构造方法。因为父类中的元素也需要被初始化。
所以父类要么有一个默认的无参数构造,这样Java会自动调用这个无参数的构造。如果父类没有无参数的构造,那么就要你自己在子类的构造中,通过super()的方式调用父类的构造。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值