父类

飞机

主函数

轮船

客车

虽然你这样实现也可以,但其实你这么实现并没有用到多态
写的很好呀,比我的好多了,我的很简洁,没有用很多东西,而你把之前的知识都贯通了
比如说你没必要构造父类的无参构造方法,虚拟机会自动帮忙构建,还有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();这个是方法多态么?