課程
/后端開發
/Java
/Java入門第二季 升級版
父類
飛機
主函數
輪船
客車
2018-12-30
源自:Java入門第二季 升級版 10-1
正在回答
雖然你這樣實現也可以,但其實你這么實現并沒有用到多態
寫的很好呀,比我的好多了,我的很簡潔,沒有用很多東西,而你把之前的知識都貫通了
比如說你沒必要構造父類的無參構造方法,虛擬機會自動幫忙構建,還有Print方法那邊我習慣寫成this.屬性/方法,因為this可以代表當前對象,在任何情況下都是適用的,而get...只適用于封裝的時候??傮w代碼沒啥問題,是我剛剛看錯了。
當然,這只是我個人的理解
其實我之前表述有誤,錯誤也不多,只是代碼還可以在優化,外加一兩個小問題
不是的,我只是為了方便才這樣寫的,你可以在構造函數里就把參數傳進去,這樣你每次創建新的對象時都會要求你先把該對象的屬性賦值(傳參),然后執行構造方法創建對象,這樣就不會麻煩了
package com.nuist.transport;
public class PractiseTransport {?private String ways;?private String personNum;?private String conveyance;?public void PracticeTransportation(){?}?public void print(){??System.out.println("使用"+this.conveyance+"在"+this.ways+"運輸"+this.personNum+"人");?}?public String getWays() {??return ways;?}?public void setWays(String ways) {??this.ways = ways;?}?public String getPersonNum() {??return personNum;?}?public void setPersonNum(String personNum) {??this.personNum = personNum;?}?public String getConveyance() {??return conveyance;?}?public void setConveyance(String conveyance) {??this.conveyance = conveyance;?}?}
public class PractisePlane extends PractiseTransport{?public PractisePlane(){??this.setConveyance("飛機");??this.setPersonNum("200");??this.setWays("天空");?}}
public class PractiseShip extends PractiseTransport {?public PractiseShip(){??this.setConveyance("輪船");??this.setPersonNum("150");??this.setWays("海洋");?}}
public class PractiseBus extends PractiseTransport {?public PractiseBus(){??this.setConveyance("公共汽車");??this.setPersonNum("40");??this.setWays("公路");?}}
public class Test {
?public static void main(String[] args) {??// TODO Auto-generated method stub??PractiseTransport a=new PractisePlane();??PractiseTransport b=new PractiseShip();??PractiseTransport c=new PractiseBus();??a.print();b.print();c.print();?}
}
剛剛寫的,你可以參考下,你的代碼小錯誤很多,要不把前面的視頻再看看??
每天學一點明天會更好 提問者
弄了很久,都理解不是那么透徹,尤其get,set,super,this,抽象。
還有在什么時候父類需要構建有參的構造方法?
car[] cars={new lorry ("松花江",4.0, 400),
? ? new lorry ("依維柯",20.0,1000),
? ? new pika ("皮卡雪", 2, 2, 450),
? ? new passengerCar("馬自達", 4, 400),
? ? new passengerCar("奧迪A4", 4, 500)};
然后new lorry("依維柯",20.0,1000).show();這個是方法多態么?
舉報
課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙
2 回答static這個練習題對不
2 回答請問有沒有練習題
2 回答我的練習題
2 回答請問老師我這個問題怎么解決
1 回答請問一下我這個作業有啥問題嗎?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-02-12
雖然你這樣實現也可以,但其實你這么實現并沒有用到多態
2019-01-12
寫的很好呀,比我的好多了,我的很簡潔,沒有用很多東西,而你把之前的知識都貫通了
2019-01-01
比如說你沒必要構造父類的無參構造方法,虛擬機會自動幫忙構建,還有Print方法那邊我習慣寫成this.屬性/方法,因為this可以代表當前對象,在任何情況下都是適用的,而get...只適用于封裝的時候??傮w代碼沒啥問題,是我剛剛看錯了。
2019-01-01
當然,這只是我個人的理解
2019-01-01
其實我之前表述有誤,錯誤也不多,只是代碼還可以在優化,外加一兩個小問題
2019-01-01
不是的,我只是為了方便才這樣寫的,你可以在構造函數里就把參數傳進去,這樣你每次創建新的對象時都會要求你先把該對象的屬性賦值(傳參),然后執行構造方法創建對象,這樣就不會麻煩了
2018-12-30
package com.nuist.transport;
public class PractiseTransport {
?private String ways;
?private String personNum;
?private String conveyance;
?public void PracticeTransportation(){
?}
?public void print(){
??System.out.println("使用"+this.conveyance+"在"+this.ways+"運輸"+this.personNum+"人");
?}
?public String getWays() {
??return ways;
?}
?public void setWays(String ways) {
??this.ways = ways;
?}
?public String getPersonNum() {
??return personNum;
?}
?public void setPersonNum(String personNum) {
??this.personNum = personNum;
?}
?public String getConveyance() {
??return conveyance;
?}
?public void setConveyance(String conveyance) {
??this.conveyance = conveyance;
?}
?
}
package com.nuist.transport;
public class PractisePlane extends PractiseTransport{
?public PractisePlane(){
??this.setConveyance("飛機");
??this.setPersonNum("200");
??this.setWays("天空");
?}
}
package com.nuist.transport;
public class PractiseShip extends PractiseTransport {
?public PractiseShip(){
??this.setConveyance("輪船");
??this.setPersonNum("150");
??this.setWays("海洋");
?}
}
package com.nuist.transport;
public class PractiseBus extends PractiseTransport {
?public PractiseBus(){
??this.setConveyance("公共汽車");
??this.setPersonNum("40");
??this.setWays("公路");
?}
}
package com.nuist.transport;
public class Test {
?public static void main(String[] args) {
??// TODO Auto-generated method stub
??PractiseTransport a=new PractisePlane();
??PractiseTransport b=new PractiseShip();
??PractiseTransport c=new PractiseBus();
??a.print();b.print();c.print();
?}
}
剛剛寫的,你可以參考下,你的代碼小錯誤很多,要不把前面的視頻再看看??
2018-12-30
弄了很久,都理解不是那么透徹,尤其get,set,super,this,抽象。
還有在什么時候父類需要構建有參的構造方法?
car[] cars={new lorry ("松花江",4.0, 400),
? ? new lorry ("依維柯",20.0,1000),
? ? new pika ("皮卡雪", 2, 2, 450),
? ? new passengerCar("馬自達", 4, 400),
? ? new passengerCar("奧迪A4", 4, 500)};
然后new lorry("依維柯",20.0,1000).show();這個是方法多態么?