2013-11-16 3 views
-1

Как я хочу использовать некоторые поля в методе void, которые простираются от суперкласса. Я попытался изменить тип от void до int, но не удивительно, скомпилированная ошибка! Он показывает «Тип возврата несовместим с ....»
Как можно что-то вернуть из метода в ситуации, когда я не могу изменить суперкласс?Как вернуть значение из метода void, который простирается от суперкласса

+2

Вы не можете переопределить метод и изменить его подпись. * «Как вернуть что-то из метода в ситуации, когда я не могу изменить суперкласс?» * - как вы ожидаете получить возвращаемое значение из метода «void»? – StepTNT

+0

«Как я хочу использовать некоторые поля в методе void, которые простираются от суперкласса». Поля в методе инкапсулированы. Вы не можете использовать их, поскольку они являются только локальными переменными. –

+0

Не видел строку, цитируемую @peeskillet. Итак, зачем вам обращаться к локальному var в методе? Не могли бы вы отредактировать вопрос и рассказать нам, что вы пытаетесь достичь? – StepTNT

ответ

1

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

Смежные вопросы