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

这样做是对的吗? 算是封装吗?

输出结果:

交通工具是用来载人的!

汽车在陆地上行驶,共载人40个!

轮船在海上上行驶,共载人500个!

飞机在天空中飞行,共载人250个!

潜水艇在海底行驶,共载人10个!

火箭在宇宙里飞行,共载人5个!


父类 Vehicle

package com.vehicle;

public class Vehicle {

private int num;

private String media;

public void talk(){

System.out.println("交通工具是用来载人的!");

}

}


子类 Car

package com.vehicle;


public class Car extends Vehicle {

private int num=40;

private String media="陆地";

public void talk(){

System.out.println("汽车在"+media+"上行驶,共载人"+num+"个!");

}

}


子类 Boat

package com.vehicle;


public class Boat extends Vehicle {

private int num=500;

private String media="海上";

public void talk(){

System.out.println("轮船在"+media+"上行驶,共载人"+num+"个!");

}

}


其他的几个子类都类似。   

测试类 Initail 

package com.vehicle;

public class Initail {

public static void main(String[] args) {

// TODO Auto-generated method stub

Vehicle obj1=new Vehicle();

Vehicle obj2=new Car();

Vehicle obj3=new Boat();

Vehicle obj4=new Airplane();

Vehicle obj5=new Submarine();

Vehicle obj6=new Rocket();

obj1.talk();

obj2.talk();

obj3.talk();

obj4.talk();

obj5.talk();

obj6.talk();

}

}


这个算是封装的程序吗?


提问者:ShortChin 2015-06-03 22:33

个回答

  • 伊兮尘昔
    2015-06-04 10:20:55
    已采纳

    算是吧,不过好麻烦。。。

  • 老实得很
    2016-04-11 16:02:48

    这应该不是封装吧,虽然你用了private修饰符,但你没用set,get方法,所以不能算封装——一点浅见