Поскольку объекты в списке хранятся как тип суперкласса, вам придется привести его к подклассу, прежде чем вы сможете получить доступ к методам подкласса. Вот как выглядит приведение типов:
(Subclass)objectOfSuperclassType
И чтобы быть в безопасности, вы должны проверять тип перед приведением, что можно сделать с помощью instanceof:
if (objectOfSuperclassType instanceof Subclass) {
Subclass objectOfSubclassType = (Subclass)objectOfSuperClass
}
И, наконец, Пример того, как реализовать это при работе со списком:
List<Superclass> myList = new ArrayList<>();
myList.add(new Subclass());
if (myList.get(0) instanceof Subclass) {
System.out.println( ((Subclass) myList.get(0)).getSomeString() );
}
Хотя это может ответить на ваш вопрос, предоставленный вами код вообще не требует инициализации Списка суперклассом. Если бы у вас было два разных подкласса и они были сохранены в одном и том же списке, только тогда имело бы смысл это сделать.