Generic type class conformity in Java

class Vehicle {
    public void test() {
        //Implementation
    }
}

class Car extends Vehicle { }

class Truck {}

class Service<T extends Vehicle> {
    List<T> list = new ArrayList<T>();

    public void add(T item) {
        list.add(item);
    }

    public void test() {
        for (T item : list) {
            item.test();
        }
    }
}

Vehicle vehicle = new Vehicle();
Car car = new Car();
Truck truck = new Truck();

Service<Vehicle> service = new Service<>();
service.add(vehicle);
service.add(car);
service.test();

service.add(truck);//<- Error