Я пишу эту простую Java-программу с общим классом. Однако у меня возникла проблема при тестировании программы:
Класс «Студент» расширяет класс «Человек». При создании ArrayBox (мой универсальный класс) я не могу использовать класс Student при создании ArrayBox
Я вижу ошибку:
"java: аргумент типа com.company.Student находится за пределами переменной типа T"
класс Студент расширяет класс Person. Я попытался заставить его реализовать Comparable, но у меня возникла ошибка, сообщающая, что он не может наследоваться от разных типов (Расширяет лицо и реализует C)
Я пытался сделать его расширяемым Comparable, но, похоже, он тоже не работает.
Эта часть показывает мне ошибку:
ArrayBox<Student> bst = new ArrayBox<>(1);
Это объявление ArrayBox:
public class ArrayBox<T extends Comparable<T>> {
Объявление класса Person:
public class Person implements Comparable<Person>{
Декларация студенческого класса:
public class Student extends Person{
Я искал в Интернете, но до сих пор не понимаю, что я могу сделать, чтобы сделать эту работу.
Эта проблема может быть легко решена (или, скорее, ее можно избежать)
используя:
ArrayBox<Person> bst = new ArrayBox<>(1);
вместо:
ArrayBox<Student> bst = new ArrayBox<>(1);
Но мне действительно нужна эта работа со вторым классом. Как объявить класс «Студент», чтобы этот код работал?
Извините, если мой вопрос кажется хаотичным, поскольку я задаю его впервые.