I have class A
class A{}
class A1 extends class A
class A1 extends A{}
now in class B, I want to pass any class that extends class A as a variable.
class B{
Class<? extends A> variable;
public B(Class<? extends A> variable) {
this.variable = variable;
}
}
to run above, the driver class is as below
class C {
public static void main(String args[]) {
B b=new B(new A());// A cannot be converted to Class<? extends A>.
B b=new B(new A1());// A1 cannot be converted to Class<? extends A>.
}
}
because Class<? extends A> variable it means, any class extending class A can be passed in the constructor and A1 is extending A, then why its giving error?
what am I missing?