powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Абстрактный класс или интерфейс?
6 сообщений из 6, страница 1 из 1
Абстрактный класс или интерфейс?
    #38912743
ghoster17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разницу абстрактого класса и интерфейса понимаю, но есть вопрос: если абстрактный класс содержит только абстрактные методы - имеет ли он право на существование или логичнее и правильнее использовать интерфейс? ведь тут по сути уже не наследование, а просто контракт? Т.е. я думаю что абстрактный класс вообще следует использовать только в том случае, если нужно добавить общую реализацию к лишь некоторым методам из общего числа.

И еще..слышал, что хорошим тоном считается на каждый класс реализовывать интерфейс? ссылка на GOF вроде была. Можете объяснить несколько подробней, какая цель преследуется? Проектирование лучше с интерфейсов как я понимаю начинать? Или все же там другая мысль подразумевается и в зачет идет идея анонимного интерфейса, который как бы в любом классе есть?
...
Рейтинг: 0 / 0
Абстрактный класс или интерфейс?
    #38912775
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ghoster17Разницу абстрактого класса и интерфейса понимаю, но есть вопрос: если абстрактный класс содержит только абстрактные методы - имеет ли он право на существование или логичнее и правильнее использовать интерфейс?

Беда java- отсутствие множественного наследования. Причём некоторые бы и за ввести, но это сделать невозможно, увы.
Поэтому интерфейс лучше- это потом позволит, если надо, включить его в другой класс. Тем более после появления методов по-умолчанию в JDK8 (это костыль на другую тему, но неплохо заменяет и множественное наследование).

ghoster17И еще..слышал, что хорошим тоном считается на каждый класс реализовывать интерфейс? ссылка на GOF вроде была.

Если параметром метода является интерфейс, то любой класс может реализовать этот интерфейс и подсунуть себя :)

С другой стороны, если ты не пишешь библиотеку для всех (а ты не пишешь), то сейчас другой тренд :) - надо делать код как можно проще, включая иерархию наследования. Надо будет- ПОТОМ выделишь хоть интерфейс, хоть абстрактный класс. Чем проще будет другим читать твой код- тем лучше для тебя же. Да и сам через пару лет будешь читать этот код, как чужой.
...
Рейтинг: 0 / 0
Абстрактный класс или интерфейс?
    #38912783
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ghoster17И еще..слышал, что хорошим тоном считается на каждый класс реализовывать интерфейс? ссылка на GOF вроде была.
Ерунда. Нет такого в GoF.
...
Рейтинг: 0 / 0
Абстрактный класс или интерфейс?
    #38913252
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ghoster17Разницу абстрактого класса и интерфейса понимаю, но есть вопрос: если абстрактный класс содержит только абстрактные методы - имеет ли он право на существование или логичнее и правильнее использовать интерфейс? ведь тут по сути уже не наследование, а просто контракт? Т.е. я думаю что абстрактный класс вообще следует использовать только в том случае, если нужно добавить общую реализацию к лишь некоторым методам из общего числа.
Ты должен спросить свою "предметную область". Нужен ли ей базовый метод в вершине иерархии. Или всё таки
его стоит поместить в конкретный интерфейс.
...
Рейтинг: 0 / 0
Абстрактный класс или интерфейс?
    #38913484
ghoster17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonНужен ли ей базовый метод в вершине иерархии. Или всё таки
его стоит поместить в конкретный интерфейс. ну я к тому и спрашиваю, что если у меня не будет ни одного базового метода с единой реализацией, когда мне может пригодиться abstract class? только на будущее, если на этапе проектирования я допускаю, что такой метод может появиться?

BlazkowiczЕрунда. Нет такого в GoF. Утверждать не буду...я это в каком то вебинаре про паттерны проектирования собственно и слышал, что меня немного удивило.

Alexey TominЕсли параметром метода является интерфейс, то любой класс может реализовать этот интерфейс и подсунуть себя :)
А можно поподробней? Не совсем понял...и плохо это или хорошо? Вообще в enterprise-системах насколько сильно используют интерфейсы? Мне просто еще не довелось с такими поработать..
...
Рейтинг: 0 / 0
Абстрактный класс или интерфейс?
    #38913546
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ghoster17Alexey TominЕсли параметром метода является интерфейс, то любой класс может реализовать этот интерфейс и подсунуть себя :)
А можно поподробней? Не совсем понял...и плохо это или хорошо?

Хорошо.

ghoster17Вообще в enterprise-системах насколько сильно используют интерфейсы? Мне просто еще не довелось с такими поработать..

Сильно. Но это смотря где :)
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Абстрактный класс или интерфейс?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]