求大神指點更優化的寫法
//父類
package traffic;
public class Vehicle {
int Pop ;//運輸工具的可載人數
String Move;//運輸方式
String Models;//工具類型
public void moveCar(){
System.out.println(Models + "在" + Move +"一次可運輸:" + Pop + "人");//創建方法 交通工具可以干什么
}
}
//子類 汽車
package traffic;
public class Car extends Vehicle {
public void moveCar(){
Pop = 5;
Move = "陸地";
Models = "汽車";
System.out.println(Models + "在" + Move +"一次可運輸:" + Pop + "人");//創建方法 交通工具可以干什么
}
}
//子類 飛機
package traffic;
public class Aircraft extends Vehicle {
public void moveCar(){
Pop = 50;
Move = "天空";
Models = "飛機";
System.out.println(Models + "在" + Move +"一次可運輸:" + Pop + "人");//創建方法 交通工具可以干什么
}
}
//子類飛機
package traffic;
public class Ship extends Vehicle {
public void moveCar(){
Pop = 50;
Move = "海上";
Models = "輪船";
System.out.println(Models + "在" + Move +"一次可運輸:" + Pop + "人");//創建方法 交通工具可以干什么
}
}
//演示
package traffic;
public class AppliCation {
public static void main(String[] args) {
// TODO Auto-generated method stub
//Vehicle traFFic = new Vehicle();
Vehicle carModel = new Car();
Vehicle carMode2 = new Aircraft();
Vehicle carMode3 = new Ship();
carModel.moveCar();
carMode2.moveCar();
carMode3.moveCar();
}
}
求大神看看這么寫對不對,另外我感覺這種不方便,如果想要隨時往里面傳參數,應該怎么寫?有沒有更優化的方法讓在下參考下?
2017-06-18
你既然每個都繼承了Vehicle,就直接調用方法啊,沒必要每個都去重寫啊,你這樣的繼承毫無意義啊,還不如每個單獨寫。
public class Ship extends Vehicle {
public Ship(String Models,String Move,int Pop){
this.Models = Models;
this.Move = Move;
this.Pop = Pop;
}
}
我們只需要給不同的運輸方式賦不同的值就行了。
2017-06-28
請大神看一下,這樣可以嗎?還可以優化嗎?
2017-06-18
2017-06-18
我也是初學者,稍微的改了一下,不知道是不是你想要的效果