最后是按老師的意思輸出了,但請問有更簡潔的代碼嗎?
public?class?Test?{ ???public?static?void?main(String[]?args)?{ ???Vehicle?bike=new?Bike(); ???????Vehicle?bus=new?Bus(); ???????Vehicle?metro=new?Metro(); ???????Vehicle?plane=new?Plane(); ???????Vehicle?ship=new?Ship(); ???????bike.sittingPeople=1; ???????bike.wayOfTranstpotaiton="road"; ???????bus.sittingPeople=40; ???????bus.wayOfTranstpotaiton="road"; ???????metro.sittingPeople=1000; ???????metro.wayOfTranstpotaiton="road"; ???????plane.sittingPeople=300; ???????plane.wayOfTranstpotaiton="sky"; ???????ship.sittingPeople=800; ???????ship.wayOfTranstpotaiton="sea"; ???????bike.feature(); ???????bus.feature(); ???????metro.feature(); ???????plane.feature(); ???????ship.feature(); ??????? }??????????? }
我創建了5個交通工具,并且通過了父類對象引用賦值及其方法,最后都能夠輸入:
巴士特性:人數:40運輸方式:road
地鐵特性:人數:1000運輸方式:road
飛機特性:人數:300運輸方式:sky
輪船特性:人數:800運輸方式:sea
但是這樣的寫法太啰嗦,不知道有沒有同學有更簡潔的代碼供參考?
2015-05-14
你這代碼就不符合面向對象原則 屬性字段為什么不封裝起來 直接訪問這是大忌。要么構造訪問要么用getter setter。
2015-05-14
可以使用構造函數。 Vehicle vic=new?Bike("road",1000);
??????????????????????????????????????????? vic.feature();
??????????????????????????????????????????? vic = new Bus("sky",800);
??????????????????????????????????????????? vic.feature();