Ответ 1
Вы способны наследовать от супертипа, который имеет общие параметры типа. Например:
public class MyList<T> extends AbstractList<T>
(или даже дать оценки параметров, например):
public class MyStringList extends AbstractList<String>
Вы не можете определить класс с супертипом подстановки. Такая концепция не имеет никакого смысла в Java (и я не уверен, что она имеет большое значение в абстрактном). В вашем примере MonitoredDevice
я даже не знаю, какую функциональность вы ожидаете там.
Из-за стирания это просто невозможно на фундаментальном уровне работы Java. У каждого класса должен быть суперкласс - что такое суперкласс из MonitoredDevice
? Какие методы доступны для объекта MonitoredDevice
? Вы не сможете называть какие-либо унаследованные методы в этом классе, поскольку компилятор не может гарантировать, что такие методы существуют, а также не может байт-код представлять такие вызовы.
Я подозреваю, что то, что вы пытаетесь сделать, может быть лучше достигнуто с помощью динамических прокси.
Изменить: Хорошо, прочитав статью полностью, я вижу, какова мотивация такой декларации. Но, прочитав статью полностью, вы также понимаете, что в настоящее время она не поддерживается Java. Основная причина этого - из-за стирания; такая техника никогда не будет возможна при нынешней механике, и в статье более подробно рассказывается о том, что конкретно мешает этому работать.