在Java中,父類和子類之間存在繼承關(guān)系。子類可以繼承父類中的屬性和方法,并且還可以重寫父類中的方法。在執(zhí)行過(guò)程中,父類和子類的執(zhí)行順序會(huì)受到一些影響。
當(dāng)一個(gè)程序創(chuàng)建一個(gè)子類對(duì)象時(shí),先執(zhí)行的是父類的構(gòu)造函數(shù),然后再執(zhí)行子類的構(gòu)造函數(shù)。public class Parent {
public Parent() {
System.out.println("父類構(gòu)造函數(shù)");
}
}
public class Child extends Parent {
public Child() {
System.out.println("子類構(gòu)造函數(shù)");
}
}
public class Test {
public static void main(String[] args) {
Child child = new Child();
}
}
輸出結(jié)果:父類構(gòu)造函數(shù)
子類構(gòu)造函數(shù)
在調(diào)用一個(gè)子類方法時(shí),如果該方法在父類中也存在,那么先調(diào)用的是子類中的方法。public class Parent {
public void method() {
System.out.println("父類方法");
}
}
public class Child extends Parent {
public void method() {
System.out.println("子類方法");
}
}
public class Test {
public static void main(String[] args) {
Child child = new Child();
child.method();
}
}
輸出結(jié)果:子類方法
在子類重寫了父類的方法時(shí),如果在子類方法中需要調(diào)用父類的同名方法,可以使用super關(guān)鍵字來(lái)調(diào)用。public class Parent {
public void method() {
System.out.println("父類方法");
}
}
public class Child extends Parent {
public void method() {
super.method();
System.out.println("子類方法");
}
}
public class Test {
public static void main(String[] args) {
Child child = new Child();
child.method();
}
}
輸出結(jié)果:父類方法
子類方法