- 1、题目
- 2、代码内容
- 汽车类Auto
- 公共汽车类Bus
- 测试类
- 3、运行结果
- 4、总结
设计一个汽车类Auto,其中包含一个表示速度的double型的成员变量speed、表示启动的start()方法、表示加速的speedUp()方法以及表示停止的stop()方法;在设计一个Auto类的子类Bus表示公共汽车,重写start()和stop()方法,另外定义两个方法gotOn()和gotOff()表示乘客上车和下车;
2、代码内容 汽车类Autopackage com.hzcollege.car;
public abstract class Auto {
private double speed;
public double getSpeed() {
return speed;
}
public void setSpeed(double speed) {
this.speed = speed;
}
public abstract void start();
public void speedUp() {
System.out.println("Auto类speedUp方法");
}
public abstract void stop();
}
公共汽车类Bus
package com.hzcollege.car;
public class Bus extends Auto{
@Override
public void start() {
System.out.println("重写了父类Auto的start方法");
}
@Override
public void stop() {
System.out.println("重写了父类Auto的stop方法");
}
public void gotOn() {
System.out.println("Bus类gotOn方法");
}
public void gotOff() {
System.out.println("Bus类gotOff方法");
}
}
测试类
package com.hzcollege;
import com.hzcollege.car.Auto;
import com.hzcollege.car.Bus;
public class Demo {
public static void main(String[] args) {
//多态定义实例,父类实例指向子类空间
Auto auto = new Bus();
//父类实例调用子类继承和重写的方法
auto.setSpeed(10);
System.out.println("speed = "+auto.getSpeed());
auto.start();
auto.speedUp();
auto.stop();
//强制类型转换,父类实例转换成子类实例
Bus bus = (Bus)auto;
//子类实例调用子类自己的方法
bus.gotOn();
bus.gotOff();
}
}
3、运行结果
4、总结
通过这次试验掌握了如何定义抽象类,子类的继承性和多态的使用
子类继承抽象父类需要重写父类的抽象方法,多态的使用可以总结为,父类指向子类对象,子类重写父类方法
父类实例想要强制转换成子类实例必须是这个父类实例指向子类实例,而子类实例可以自动转换成父类实例



