类图
源码
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(); } }
测试截图