1. 程式人生 > >繼承中關於方法重寫和屬性重寫的分析

繼承中關於方法重寫和屬性重寫的分析

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();
	}
}

(四)執行結果