问答详情
源自:10-1 Java 中的多态

最后是按老师的意思输出了,但请问有更简洁的代码吗?

public class Test {
   public static void main(String[] args) {
	   Vehicle bike=new Bike();
       Vehicle bus=new Bus();
       Vehicle metro=new Metro();
       Vehicle plane=new Plane();
       Vehicle ship=new Ship();
       bike.sittingPeople=1;
       bike.wayOfTranstpotaiton="road";
       bus.sittingPeople=40;
       bus.wayOfTranstpotaiton="road";
       metro.sittingPeople=1000;
       metro.wayOfTranstpotaiton="road";
       plane.sittingPeople=300;
       plane.wayOfTranstpotaiton="sky";
       ship.sittingPeople=800;
       ship.wayOfTranstpotaiton="sea";
       bike.feature();
       bus.feature();
       metro.feature();
       plane.feature();
       ship.feature();
       
}           
}

我创建了5个交通工具,并且通过了父类对象引用赋值及其方法,最后都能够输入:

巴士特性:人数:40运输方式:road

地铁特性:人数:1000运输方式:road

飞机特性:人数:300运输方式:sky

轮船特性:人数:800运输方式:sea

但是这样的写法太啰嗦,不知道有没有同学有更简洁的代码供参考?

提问者:lorenzt 2015-05-14 14:10

个回答

  • 你存在
    2015-05-14 14:53:45

    你这代码就不符合面向对象原则 属性字段为什么不封装起来 直接访问这是大忌。要么构造访问要么用getter setter。

  • Mr_Li_0001
    2015-05-14 14:20:59

    可以使用构造函数。 Vehicle vic=new Bike("road",1000);

                                                vic.feature();

                                                vic = new Bus("sky",800);

                                                vic.feature();