类图
源码
package bridge;
public interface Vehicle {
public void drive();
}
Car.java
package bridge;
public class Car implements Vehicle
{
@Override
public void drive()
{
System.out.print("小轿车");
}
}
Bus.java
package bridge;
public class Bus implements Vehicle{
@Override
public void drive()
{
System.out.print("公共汽车");
}
}
Road.java
package bridge;
public abstract class Road
{
protected Vehicle vehicle;
public Road(Vehicle vehicle)
{
this.vehicle = vehicle;
}
public abstract void driveOnRoad();
}
ShuiRoad.java
package bridge;
public class ShuiRoad extends Road
{
public ShuiRoad(Vehicle vehicle)
{
super(vehicle);
}
@Override
public void driveOnRoad()
{
super.vehicle.drive();
System.out.println("行驶在水泥路");
}
}
LiRoad.java
package bridge;
public class LiRoad extends Road
{
public LiRoad(Vehicle vehicle)
{
super(vehicle);
}
@Override
public void driveOnRoad()
{
super.vehicle.drive();
System.out.println("行驶在沥青路");
}
}
Tester.java
package bridge;
public class Tester {
public static void main(String[] args) {
Road road = new ShuiRoad(new Car());
road.driveOnRoad();
Road road1 = new ShuiRoad(new Bus());
road1.driveOnRoad();
}
}
测试截图