Использование абстрактных классов и интерфейсов - PullRequest
0 голосов
/ 28 февраля 2010

Если у меня есть три класса

class A

class B extends A

class C extends A

Может ли использование абстрактных классов или интерфейсов вызвать какие-либо ошибки или повлиять на способ реализации программы?

Ответы [ 3 ]

4 голосов
/ 28 февраля 2010

Если вам не нужно делиться реализацией, предпочтите интерфейсы.

Если вам нужно поделиться реализацией, подумайте, является ли абстрактный класс правильным способом для этого.

Наследование - это мощный инструмент, но он может легко создать неразрешимый беспорядок (я был здесь виноват).

Но чтобы ответить на ваш вопрос - нет, в этой настройке нет ничего, что могло бы вызвать «ошибку».

1 голос
/ 28 февраля 2010

Да. Абстрактные классы торгуют более коротким способом повторного использования реализации для обеспечения гибкости для предоставления нескольких интерфейсов для одного и того же объекта.

Если вы не играете в код-гольф, выбор гибкости интерфейсов обычно является лучшим вариантом.

1 голос
/ 28 февраля 2010

Обычно вы предпочитаете интерфейсы всякий раз, когда можете. Отсутствие множественного наследования в Java быстро становится ограничивающим фактором, если вы используете для этого классы.

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