У меня есть класс A
class A{}
класс А1 расширяет класс А
class A1 extends A{}
Теперь в классе B я хочу передать любой класс, который расширяет класс A. как переменную.
class B{
Class<? extends A> variable;
public B(Class<? extends A> variable) {
this.variable = variable;
}
}
для запуска выше, класс драйвера как ниже
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>.
}
}
потому что Class<? extends A> variable
это означает, что любой класс, расширяющий класс A, может быть передан в конструктор, а A1 расширяет A, тогда почему он дает ошибку?
что мне не хватает?