public class VisitingVehicleCounter extends VehicleCounter implements VehicleVisitor { public void count(Vehicle[] vehicles) { for (Vehicle vehicle: vehicles) { vehicle.accept(this); } } public void visit(Car car) { ++numCars; } public void visit(Bike bike) { ++numBikes; } public void visit(Motorbike motorbike) { ++numMotorbikes; } }