0

What are my options, if I what the following code to work?

class Garage<X>{}

class Vehicle {}

class Car extends Vehicle {}

class Bike extends Vehicle {}

class A {
    public static void main(String[] args) {
        Garage<Car> car = new Garage<>();
        Garage<Bike> bike = new Garage<>();
        Garage<Vehicle> vehicle = new Garage<>();
        //what are the options to do this?
        vehicle=car;
        vehicle=bike;
    }
}

What I'm after is to try upcast(?) car and bike to vehicle. Is this even possible with this kind generic class type?

Zabuzard
  • 23,461
  • 7
  • 54
  • 77

1 Answers1

1

In order to do what you desire, you need to change

Garage<Vehicle> vehicle = new Garage<>();

to

Garage<? extends Vehicle> vehicle = new Garage<>();
Naman
  • 21,685
  • 24
  • 196
  • 332