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

来源:10-1 Java 中的多态

lorenzt

2015-05-14 14:10

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

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

写回答 关注

2回答

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

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

    lorenz...

    其实还有有点不太明白(还是新手),就是我还是不明白,要是有人打开了我的Vehicle 类,修改里面的getter and setter方法这样不也能够把我的数据弄坏吗?或者它直接把Vehicle类里面的private去掉或者改为public 等等这样不都没有起到“防盗”的作用?

    2015-05-14 23:34:16

    共 6 条回复 >

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

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

                                                vic.feature();

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

                                                vic.feature();

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530559 学习 · 6091 问题

查看课程

相似问题