每天学一点明天会更好
2018-12-30 21:19
父类
飞机
主函数
轮船
客车
虽然你这样实现也可以,但其实你这么实现并没有用到多态
写的很好呀,比我的好多了,我的很简洁,没有用很多东西,而你把之前的知识都贯通了
比如说你没必要构造父类的无参构造方法,虚拟机会自动帮忙构建,还有Print方法那边我习惯写成this.属性/方法,因为this可以代表当前对象,在任何情况下都是适用的,而get...只适用于封装的时候。总体代码没啥问题,是我刚刚看错了。
当然,这只是我个人的理解
其实我之前表述有误,错误也不多,只是代码还可以在优化,外加一两个小问题
不是的,我只是为了方便才这样写的,你可以在构造函数里就把参数传进去,这样你每次创建新的对象时都会要求你先把该对象的属性赋值(传参),然后执行构造方法创建对象,这样就不会麻烦了
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();
}
}
刚刚写的,你可以参考下,你的代码小错误很多,要不把前面的视频再看看??
弄了很久,都理解不是那么透彻,尤其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入门第二季 升级版
530553 学习 · 6091 问题
相似问题