В JDK 5 появилась концепция ковариантности возвращаемых типов; этот термин означает, что переопределенный метод производного класса может вернуть тип, производный от типа, возвращаемого методом базового класса. Например:
И вывод этой программы:
До JDK5, было невозможно переопределить метод если он возвращал другое значение, чем переопределяемый метод.
В примере я специально добавил аннотацию @Override, чтобы было явно, что метод build() переопределен в подклассе.
Ковариантность, в данном примере, позволяет возвращать более специализированный тип Circle.
В этой программе, так же, есть один интересный момент: мы переопределили метод toString(), наследуемый от класса Object.
О классе Object мы поговорим чуть позже, а пока опять мотаем на ус.
Комментариев нет:
Отправить комментарий