super():代表父類(lèi)對(duì)象留荔,調(diào)用父類(lèi)的構(gòu)造方法吟孙,如果在子類(lèi)的構(gòu)造函數(shù)中調(diào)用該函數(shù)則必須放在第一行澜倦,該方法會(huì)將父類(lèi)的變量與方法記載到子類(lèi)開(kāi)辟的堆內(nèi)存中。
public class Father {
private int id;
public Father()
{
}
public Father(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
public class son extends Father {
public son()
{
super();//調(diào)用父類(lèi)的無(wú)參構(gòu)造方法
}
public son(int id)
{
super(id);//調(diào)用父類(lèi)的有殘構(gòu)造方法
}
}
如果父類(lèi)沒(méi)有無(wú)參構(gòu)造方法導(dǎo)致子類(lèi)調(diào)用不到相應(yīng)的構(gòu)造方法
this():指代本類(lèi)對(duì)象杰妓,用于調(diào)用本類(lèi)構(gòu)造方法和屬性還有普通方法藻治,如果在本類(lèi)找不到就去父類(lèi)中找
注意:this和super不能在靜態(tài)方法中使用(因?yàn)殪o態(tài)方法是隨著類(lèi)的加載而加載,此時(shí)還沒(méi)有對(duì)象巷挥,而this和super指本類(lèi)和父類(lèi))