Нет! Изменяемые контейнеры просто не работают таким образом - на самом деле, захватывающий аспект ООП.
В List<fruit>
вы можете вставить банан - в List<apple>
вы не можете; таким образом, нарушается принцип Лискова, который доказывает, что у вас нет подклассов.
Неизменяемые контейнеры действительно работают как положено (ковариантность - это термин искусства).
Достаточно забавно, я никогда не видел этот захватывающий закон в печати (сродни тому факту, что в мире изменяемых объектов вы не можете сказать Прямоугольник IS-A квадрата ... но в мир неизменных объектов, вы можете !) - я только придумал это сам благодаря опыту и наблюдению. Я хотел бы, чтобы в этом контексте использовалась научная ссылка, если кто-нибудь может это сделать, кстати; -)