課程
/后端開發(fā)
/Java
/Java入門第二季 升級版
父類
飛機(jī)
主函數(shù)
輪船
客車
2018-12-30
源自:Java入門第二季 升級版 10-1
正在回答
雖然你這樣實(shí)現(xiàn)也可以,但其實(shí)你這么實(shí)現(xiàn)并沒有用到多態(tài)
寫的很好呀,比我的好多了,我的很簡潔,沒有用很多東西,而你把之前的知識(shí)都貫通了
比如說你沒必要構(gòu)造父類的無參構(gòu)造方法,虛擬機(jī)會(huì)自動(dòng)幫忙構(gòu)建,還有Print方法那邊我習(xí)慣寫成this.屬性/方法,因?yàn)閠his可以代表當(dāng)前對象,在任何情況下都是適用的,而get...只適用于封裝的時(shí)候??傮w代碼沒啥問題,是我剛剛看錯(cuò)了。
當(dāng)然,這只是我個(gè)人的理解
其實(shí)我之前表述有誤,錯(cuò)誤也不多,只是代碼還可以在優(yōu)化,外加一兩個(gè)小問題
不是的,我只是為了方便才這樣寫的,你可以在構(gòu)造函數(shù)里就把參數(shù)傳進(jìn)去,這樣你每次創(chuàng)建新的對象時(shí)都會(huì)要求你先把該對象的屬性賦值(傳參),然后執(zhí)行構(gòu)造方法創(chuàng)建對象,這樣就不會(huì)麻煩了
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+"運(yùn)輸"+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("飛機(jī)");??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();?}
}
剛剛寫的,你可以參考下,你的代碼小錯(cuò)誤很多,要不把前面的視頻再看看??
每天學(xué)一點(diǎn)明天會(huì)更好 提問者
弄了很久,都理解不是那么透徹,尤其get,set,super,this,抽象。
還有在什么時(shí)候父類需要構(gòu)建有參的構(gòu)造方法?
car[] cars={new lorry ("松花江",4.0, 400),
? ? new lorry ("依維柯",20.0,1000),
? ? new pika ("皮卡雪", 2, 2, 450),
? ? new passengerCar("馬自達(dá)", 4, 400),
? ? new passengerCar("奧迪A4", 4, 500)};
然后new lorry("依維柯",20.0,1000).show();這個(gè)是方法多態(tài)么?
舉報(bào)
課程升級!以終為始告別枯燥,在開發(fā)和重構(gòu)中體會(huì)Java面向?qū)ο缶幊痰膴W妙
2 回答static這個(gè)練習(xí)題對不
2 回答請問有沒有練習(xí)題
2 回答我的練習(xí)題
2 回答請問老師我這個(gè)問題怎么解決
1 回答請問一下我這個(gè)作業(yè)有啥問題嗎?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2019-02-12
雖然你這樣實(shí)現(xiàn)也可以,但其實(shí)你這么實(shí)現(xiàn)并沒有用到多態(tài)
2019-01-12
寫的很好呀,比我的好多了,我的很簡潔,沒有用很多東西,而你把之前的知識(shí)都貫通了
2019-01-01
比如說你沒必要構(gòu)造父類的無參構(gòu)造方法,虛擬機(jī)會(huì)自動(dòng)幫忙構(gòu)建,還有Print方法那邊我習(xí)慣寫成this.屬性/方法,因?yàn)閠his可以代表當(dāng)前對象,在任何情況下都是適用的,而get...只適用于封裝的時(shí)候??傮w代碼沒啥問題,是我剛剛看錯(cuò)了。
2019-01-01
當(dāng)然,這只是我個(gè)人的理解
2019-01-01
其實(shí)我之前表述有誤,錯(cuò)誤也不多,只是代碼還可以在優(yōu)化,外加一兩個(gè)小問題
2019-01-01
不是的,我只是為了方便才這樣寫的,你可以在構(gòu)造函數(shù)里就把參數(shù)傳進(jìn)去,這樣你每次創(chuàng)建新的對象時(shí)都會(huì)要求你先把該對象的屬性賦值(傳參),然后執(zhí)行構(gòu)造方法創(chuàng)建對象,這樣就不會(huì)麻煩了
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+"運(yùn)輸"+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("飛機(jī)");
??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();
?}
}
剛剛寫的,你可以參考下,你的代碼小錯(cuò)誤很多,要不把前面的視頻再看看??
2018-12-30
弄了很久,都理解不是那么透徹,尤其get,set,super,this,抽象。
還有在什么時(shí)候父類需要構(gòu)建有參的構(gòu)造方法?
car[] cars={new lorry ("松花江",4.0, 400),
? ? new lorry ("依維柯",20.0,1000),
? ? new pika ("皮卡雪", 2, 2, 450),
? ? new passengerCar("馬自達(dá)", 4, 400),
? ? new passengerCar("奧迪A4", 4, 500)};
然后new lorry("依維柯",20.0,1000).show();這個(gè)是方法多態(tài)么?