Что вы используете, если хотите убедиться, что все методы и свойства реализованы - PullRequest
2 голосов
/ 28 августа 2009

Я давал тест и получил один вопрос. ВОПРОС: Что вы используете, если хотите убедиться, что все методы и свойства реализованы? а) наследование. б) Полиморфизм. в) Инкапсуляция г) Интерфейс.

Я думаю, что его интерфейс. Я прав или нет. ANS DIF?

Ответы [ 4 ]

8 голосов
/ 28 августа 2009

Да, используйте интерфейс. Интерфейс - это, по сути, контракт, в котором говорится: «Эй, вам нужно реализовать эти элементы, или я не собираюсь компилировать».

4 голосов
/ 28 августа 2009

Интерфейс или абстрактный класс будут выполнять то, что вы хотите. В абстрактном классе, если method помечен как abstract, то он должен быть реализован в производном классе. Вопрос действительно сводится к тому, какой из них вы должны использовать. Интерфейс или абстрактный класс.

Быстрый ответ (и я имею в виду быстрый и грязный) заключается в том, что вам следует использовать интерфейс, когда вы пытаетесь установить договорное поведение между классами. Вы должны использовать абстрактный класс, когда набор производных классов имеет некоторое общее поведение.

3 голосов
/ 28 августа 2009

Интерфейс гарантирует, что класс имеет заглушки для всех методов, но они могут быть не реализованы и могут выдавать исключения NotImplementedExceptions.

Лучший способ убедиться, что все методы реализованы, - использовать модульные тесты, в которых вы проверяете, что методы действительно выполняют то, что должны.

0 голосов
/ 28 августа 2009

На самом деле, эти понятия даже не сравнить друг с другом.

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