
|
这是书中334面的一段程序
package com.javaeasy.logcar;
import com.javaeasy.car.Bus;
import com.javaeasy.car.CarBase;
import com.javaeasy.car.SportsCar;
public class LogCarOnAStreet {
public static void main(String[] args) {
CarBase car = null; // 创建一个CarBase类的引用
car = new CarBase("红色", "天津大发", 0); // 让car指向一个CarBase类的对象
car.speedUp(50); // 提速50
TransportRecoder.recordTransport(car); // 记录CarBase类对象的状态
car = new Bus("黄色", "大桥六线", 0, 0, 0); // car指向一个Bus类的对象
car.speedUp(60); // 提速60
TransportRecoder.recordTransport(car); // 记录Bus类对象的状态
car = new SportsCar("黄色", "Eclipse", 0, 0); // 让car指向一个SportsCar类的对象
car.speedUp(70); // 提速70
TransportRecoder.recordTransport(car); // 记录SportsCar类对象的状态
}
}
输出是:
一下是经过的第1辆车的信息:
车为:天津大发,车速为:50
一下是经过的第2辆车的信息:
车为:大桥六线,车速为:60
一下是经过的第3辆车的信息:
车为:大桥六线,车速为:70
这里没弄错的话,应该是用的是多态的方法吧。多态那节讲的是 决定函数重载的哪个方法被调用的是实参,也就是引用的类型,而不是引用指向的对象类型。
这里的引用全部都是car ,按照我的理解是只输出“车为:天津大发,车速为:50” 这个内容的 为什么还会显示出bus , sportcar两个对象的信息呢?
对于这个概念有点混乱啊,求指导,谢谢 |
|