Обобщенный подкласс
Абсолютно приемлемо, когда суперклассом для обобщенного класса выступает класс необобщенный. Например, рассмотрим программу:
// Необобщенный класс может быть суперклассом
// для обобщенного подкласса.
// Необобщенный класс.
class NonGen {
int num; NonGen(int i) {
num = i;
}
int getnumO {
return num;
}
}
// Обобщенный подкласс.
class Gen
T ob; // Объявление объекта типа T
// Передать конструктору объект
// типа Т.
Gen (Т о, int i) {
super (i) ;
ob = о;
}
// Возвращает ob.
T getob () { return ob;
}
}
// Создать объект Gen.
class HierDemo2 {
public static void main(String args[]) {
// Создать объект Gen для String.
Gen
System.out.print(w.getob() + " ");
System.out.println(w.getnum());
}
}
Результат работы этой программы показан ниже:
Добро пожаловать
4
7
Обратите внимание на то, как в этой программе Gen наследуется от NonGen:
class Gen
Поскольку NonGen — необобщенный класс, никакие аргументы типа не указываются. То есть даже если Gen объявляет тип-параметр Т, он не требуется (и не может быть использован) NonGen. То есть Gen наследуется от NonGen обычным способом. Никаких специальных условий не требуется.