2024.12.5

 

public abstract class Vehicle  

{  

    protected Road road;  

   

    public void setRoad(Road road)  

    {  

        this.road = road;  

    }  

   

    public abstract void drive();  

}  

   

public class Bus extends Vehicle  

{  

    @Override  

    public void drive()  

    {  

        String carType = "bus";  

        this.road.bedrive(carType);  

    }  

}  

   

public class Car extends Vehicle  

{  

    @Override  

    public void drive()  

    {  

        String carType = "car";  

        this.road.bedrive(carType);  

    }  

}  

   

public interface Road  

{  

    void bedrive(String carType);  

}  

   

public class ConcreteRoad implements Road  

{  

    @Override  

    public void bedrive(String carType)  

    {  

        System.out.println(carType + "在水泥路行驶");  

    }  

}  

   

public class PitchRoad implements Road  

{  

    @Override  

    public void bedrive(String carType)  

    {  

        System.out.println(carType + "在沥青路行驶");  

    }  

}

public class Main {  

    public static void main(String[] args) {  

        Vehicle car = new Car();  

        Road pitchRoad = new PitchRoad();  

        car.setRoad(pitchRoad);  

        car.drive();  

        Vehicle bus = new Bus();  

        Road concreteRoad = new ConcreteRoad();  

        bus.setRoad(concreteRoad);  

        bus.drive();

    }  

}

posted @ 2024-12-05 09:21  kuku睡  阅读(6)  评论(0)    收藏  举报