Java oop 學習筆記:方法的重寫

在Java的繼承中,子類既可以隱藏和訪問父類的方法,也可以覆蓋繼承父類的方法。在Java中覆蓋繼承父類的方法是通過方法的重寫來實現(xiàn)的。所謂方法的重寫是指子類中的方法與父類中繼承的方法有完全相同的返回值類型、方法名、參數(shù)個數(shù)以及參數(shù)類型。這樣,就可以實現(xiàn)對父類方法的覆蓋。
類方法的覆蓋?
注意:JDK 1.5以后的版本中,子類覆蓋父類的方法時,覆蓋方法的返回值類型可以是原來返回類型的子類型。
public class Car3 extends Vehicle{
/ *車啟動的方法:*/
public void start(){
System. out.println("The car start")//打印輸出括號中的語句
}
/ *車停止的方法:*/
public void stop( ){
System. out.println("The car stop ");/打印輸出車的停止信息
}
此時在main ()方法中調用start ()方法和stop () 方法。
public static void main(String [] args){
Car C =new Car();//創(chuàng)建一個Car對象
c.start();
c.stop();
//調用子類的stop方法
}
其運行結果可以看出,當子類重寫了父類中的start () 方法和stop () 方法后,使用c調用的是子類的start ()方法和stop ()方法,父類Vehicle中的方法被覆蓋了。但是有些時候需要調用父類中被賦蓋的方法,這時就需要使用super關鍵字。使用super關鍵字調用父類方法的語法如下:
super .Method( [paramlist]);
其中,Method是需要調用的父類的方法,paramlist是參 數(shù)列表(如果被調用的方法存在參數(shù))。例如上面的例子中,如stop () 方法,可以在類Car2中的printInfo ()方法中添加如下的語句。
public void printInfo (){
super .start( );// 調用父類的start方法
super . stop();// 調用父類的stop方法
}