Что такое ковариантный тип возврата в Java и чем он отличается от переопределения методов до Java 5? — ДейлиПреп