亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

正在回答

8 回答

雖然你這樣實現也可以,但其實你這么實現并沒有用到多態

0 回復 有任何疑惑可以回復我~

寫的很好呀,比我的好多了,我的很簡潔,沒有用很多東西,而你把之前的知識都貫通了


0 回復 有任何疑惑可以回復我~

比如說你沒必要構造父類的無參構造方法,虛擬機會自動幫忙構建,還有Print方法那邊我習慣寫成this.屬性/方法,因為this可以代表當前對象,在任何情況下都是適用的,而get...只適用于封裝的時候??傮w代碼沒啥問題,是我剛剛看錯了。

0 回復 有任何疑惑可以回復我~

當然,這只是我個人的理解


0 回復 有任何疑惑可以回復我~

其實我之前表述有誤,錯誤也不多,只是代碼還可以在優化,外加一兩個小問題


0 回復 有任何疑惑可以回復我~

不是的,我只是為了方便才這樣寫的,你可以在構造函數里就把參數傳進去,這樣你每次創建新的對象時都會要求你先把該對象的屬性賦值(傳參),然后執行構造方法創建對象,這樣就不會麻煩了

0 回復 有任何疑惑可以回復我~

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();
?}

}

剛剛寫的,你可以參考下,你的代碼小錯誤很多,要不把前面的視頻再看看??

0 回復 有任何疑惑可以回復我~
#1

每天學一點明天會更好 提問者

哪方面的理解錯誤了,我看了下,是子類構造不要傳參,直接在this.setConveyance("公共汽車");這樣傳參嗎,如果后期做的需要修改參數,不是會很麻煩嗎
2018-12-31 回復 有任何疑惑可以回復我~

弄了很久,都理解不是那么透徹,尤其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();這個是方法多態么?

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java入門第二季 升級版
  • 參與學習       531142    人
  • 解答問題       6326    個

課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙

進入課程

請問我這個練習題理解行嗎

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號