Главная > Java | Java labs > Ковариантность возвращаемых типов при переопределениие методов в Java

Ковариантность возвращаемых типов при переопределениие методов в Java

21.04.2012 0 коммент. » Просмотры: 4 726
 

Сегодня поиграемся с переопределением методов и разберемся, что такое ковариантность.

Итак, при переопределении методов (overriding) сигнатуры методов должны совпадать. В сигнатуру методов входит имя метода и его параметры. Возвращаемые параметры, туда не входят. За одним исключением, а именно метод в котором делается переопределение, может возвращать не только сам объект, но и его потомков. именно это и называется страшным словом ковариантность.

Под ковариантность подразумевается, что переопределённый метод может вернуть тип, производный от типа, возвращаемого методом базового класса.

Как всегда, начну с примера:

Результат:

Как видим в классе Employee, метод getPerson возвращает тип Person. А в наследнике Employee, классе Manager, в переопределенном методе, мы возвращаем уже класс Dude. В выводе мы вывели название вызываемых классов, поэтому видим что переопределение работает.

Вывод: При переопределении (overriding) сигнатуры методов должны совпадать. Возвращаемый тип должен либо совпадать, либо быть потомком первоначально выбранного объекта (ковариантные типы).

Автор: | Теги: ,

Важно

У нас заработал ФОРУМ. Все вопросы, которые не касаются статьи, а так же вопросы по конкретно вашему случаю нужно задавать и обсуждать именно там, в разделе "Помощь пользователям".

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Разрешены HTML-теги: <a>, <code>, <i>, <em>, <strong>, <b>, <u>, <strike>