6 июл. 2015 г.

Полиморфизм – ковариантность возвращаемых типов.

В JDK 5 появилась концепция ковариантности возвращаемых типов; этот термин означает, что переопределенный метод производного класса может вер­нуть тип, производный от типа, возвращаемого методом базового класса. Например:

Co001

И вывод этой программы:

Co002

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

В примере я специально добавил аннотацию @Override, чтобы было явно, что метод build() переопределен в подклассе.

Ковариантность, в данном примере, позволяет возвращать более специализированный тип Circle.

В этой программе, так же, есть один интересный момент: мы переопределили метод toString(), наследуемый от класса Object.

О классе Object мы поговорим чуть позже, а пока опять мотаем на ус.

Комментариев нет:

Отправить комментарий