求大神指點更優化的寫法
//父類
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
package?com.shellinfor; //父類 public?class?Vehicle?{ int?pop; String?move; String?models; public?void?movePeople(){ System.out.println(models?+",是屬于"?+?move?+",可以載客"?+?pop+?"!"); } }package?com.shellinfor; //汽車子類 public?class?Car?extends?Vehicle?{ public?Car(String?models,String?move,int?pop){ this.models?=?models; this.move?=?move; this.pop?=?pop; } }package?com.shellinfor; //輪船子類 public?class?Ship?extends?Vehicle?{ public?Ship(String?models,String?move,int?pop){ this.models?=?models; this.move?=?move; this.pop?=?pop; } }package?com.shellinfor; //飛機子類 public?class?Plane?extends?Vehicle?{ public?Plane(String?models,String?move,int?pop){ this.models?=?models; this.move?=?move; this.pop?=?pop; } }package?com.shellinfor; //主方法類 public?class?Demo?{ public?static?void?main(String[]?args)?{ Vehicle?ve1?=?new?Car("汽車",?"陸運",?40); Vehicle?ve2?=?new?Ship("輪船",?"海運",?200); Vehicle?ve3?=?new?Plane("飛機",?"空運",?400); ve1.movePeople(); ve2.movePeople(); ve3.movePeople(); } }請大神看一下,這樣可以嗎?還可以優化嗎?
2017-06-18
//父類package?traffic; class?Vehicle?{? ?//變量名第一個字母不用大寫,類名或接口名第一個字母才要大寫 ?int?pop?;//運輸工具的可載人數? ?String?move;//運輸方式? ?String?models;//工具類型? ? ?public?Vehicle()?{ ?? ?} ? ?public?Vehicle(int?pop,?String?move,?String?models)?{ ??this.pop?=?pop; ??this.move?=?move; ??this.models?=?models; ?} ? ?public?void?moveCar(){?? ??System.out.println(models?+?"在"?+?move?+"一次可運輸:"?+?pop?+?"人");//創建方法?交通工具可以干什么? ?} } //子類?汽車 class?Car?extends?Vehicle?{? ?public?Car(int?pop,?String?move,?String?models){?? ??super(pop,?move,?models);? ?} } //子類?飛機 class?Aircraft?extends?Vehicle?{? ?public?Aircraft(int?pop,?String?move,?String?models)?{ ??super(pop,?move,?models); ?} } //子類飛機 class?Ship?extends?Vehicle?{? ?public?Ship(int?pop,?String?move,?String?models){? ??super(pop,?move,?models); ?} } //演示 public?class?AppliCation?{? ?//創建一個靜態方法,利用多態,調用Vehicle子類中各自的moveCar()方法 ?public?static?void?show(Vehicle?v)?{ ??v.moveCar(); ?} ?public?static?void?main(String[]?args)?{? ??Vehicle?car?=?new?Car(5,?"陸地",?"汽車"); ??Vehicle?aircraft?=?new?Aircraft(50,?"天空",?"飛機"); ??Vehicle?ship?=?new?Ship(50,?"海上",?"輪船"); ????????? ??show(car);??????? ??show(aircraft);??????? ??show(ship);??????? ?} }2017-06-18
//父類 package?traffic; public?class?Vehicle?{ int?Pop?;//運輸工具的可載人數 String?Move;//運輸方式 String?Models;//工具類型 public?void?moveCar(int?pop,?String?move,?String?models){ this.Pop?=?pop; this.Move?=?move; this.Models?=?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?Car?extends?Vehicle?{ public?void?moveCar(){ /* Pop?=?5; 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?+?"人");//創建方法?交通工具可以干什么 */ } } //main package?traffic; public?class?AppliCation?{ public?static?void?main(String[]?args)?{ //?TODO?Auto-generated?method?stub Vehicle?carModel?=?new?Car(); Vehicle?carMode2?=?new?Aircraft(); Vehicle?carMode3?=?new?Ship(); carModel.moveCar(5,?"陸地",?"汽車"); carMode2.moveCar(50,?"天空",?"飛機"); carMode3.moveCar(50,?"海上",?"輪船"); } }我也是初學者,稍微的改了一下,不知道是不是你想要的效果