繼承中關於方法重寫和屬性重寫的分析
阿新 • • 發佈:2019-01-29
Java語言中,子類繼承父類的方法和屬性。如果不進行重寫,那麼子類就直接使用父類的屬性和方法。如果子類對父類的屬性和方法進行了重寫(也就是對屬性 和 方法進行了重新的定義),那麼子類就會儲存兩份屬性和兩個方法。程式可以通過子類物件訪問這兩個屬性(父類物件的屬性,子類物件的屬性);程式也可以通過子類物件呼叫兩個方法(父類物件的方法,子類物件的方法)。
下面是程式碼示例:
(一)父類:AutoMobile.java
public class AutoMobile { int numberOfWheel; int numberOfDoor; int numberOfSites; String name; void drive(){ System.out.println("父類的drive()方法"); } void start(){ System.out.println("父類啟動"); } void stop(){ System.out.println("父類關閉"); } }
( 二)子類:Car.java
public class Car extends AutoMobile{
String name; //小汽車車子的名字,重寫的name屬性
int carTrunk;
//重寫了start()方法
void start(){
System.out.println("子類start()方法");
}
void autoDrive(){
System.out.println("自動駕駛");
}
}
(三)測試類InheritTest.java
通過建立一個Car物件,然後訪問父類和子類屬性,呼叫父類和子類方法
public class InheritTest { public static void main(String[] args) { // TODO Auto-generated method stub Car car = new Car(); //給子類物件的name屬性賦值 car.name = "吉利牌小汽車"; //給子類物件中的父類屬性賦值 ((AutoMobile)car).name = "交通工具"; System.out.println(car.name); System.out.println(((AutoMobile)car).name); //呼叫子類物件的方法start car.start(); //呼叫子類物件中的父類方法start ((AutoMobile)car).drive(); } }
(四)執行結果