java任務--交通工具
阿新 • • 發佈:2019-01-24
– 在包bzu.aa中定義一個交通工具類(Vehicle):
Vehicle類:
Car類:package bzu.aa; public class Vehicle{ public int capacity; Vehicle(){ capacity=2; System.out.println("執行交通工具類的無參構造方法"); } public Vehicle(int c){ this.capacity=c; System.out.println("執行交通工具類的有參構造方法"); } void setCapacity(int capacity){ this.capacity=capacity; } int getCapacity(){ return capacity; } public void print(){ System.out.println("載客量為:"+capacity); } }
Bus類:package bzu.aa; public class Car extends Vehicle{ public int speed; public Car(){ speed=0; System.out.println("執行汽車類的無參構造方法"); } public Car(int s){ super(5); speed=s; System.out.println("執行汽車類的有參構造方法"); } public int speedUp(){ speed=speed+10; return speed; } public int speedDown(){ speed=speed-15; return speed; } public void print(){ System.out.println("載客量:"+capacity+",速度為:"+speed); } }
Test類:package bzu.bb; import bzu.aa.Car; public final class Bus extends Car{ //Bus類繼承Car類,同時繼承了Car類的所有的成員變數和方法 int capacity; public Bus(){ capacity=20; System.out.println("執行公交車類的無參構造方法"); } Bus(int capacity) { super(5); //呼叫父類的構造方法 this.capacity = capacity; System.out.println("執行公交車類的有參構造方法"); } public void print(){ System.out.println("載客量:"+super.capacity+",速度為:"+speed+"載客量:"+capacity); } }
package bzu.bb;
import bzu.aa.Car;
public class Test {
public static void main(String[] args) {
Car car = new Car();
while(car.speed<50)
car.speedUp();
car.print();
while(car.speed>20)
car.speedDown();
car.print();
Bus bus = new Bus();
bus.print();
}
}
執行結果:
程式分析:
這個題目運用的是繼承,用extends關鍵字可以實現子類對父類的繼承,繼承父類的所有成員變數還有方法,super()關鍵字可以繼承父類的構造方法,但需要放在子類構造方法的第一句,在子類中寫與父類方法名引數全部都一樣的方法是實現父類這個方法的重寫,執行的時候父類的這個方法將會被隱藏,執行子類的這個方法,變數也是一樣的,繼承主要是為了優化程式,將重複的程式碼寫入父類中,不同的子類去繼承使用就好了,而不需要再重複的書寫程式碼。