Здравствуйте, boluba, Вы писали:
Я вообще не вижу смысла в а,страктных классах кроме как инкапсуляция общей (generic) или default логики всех (или большинства) имплементаций интерфейса.
Пример из Swing'а:
interface TableModel
abstact class AbstactTableModel implments TableModel — абстрактный класс с default логикой которая подходит большинству имплементаций TableModel
class OrdersTableModel extends AbstactTableModel — пользуется default логикой определенной в AbstactTableModel, там где надо переопределяет методы.
Мне кажется что вся эта дискуссия пошла из С++ где не было интерфейсов и вместо них использовались абстрактные классы (но там есть множественное наследование

), соответсвенно при переходе на Java часто возникает вопрос а зачем еще интерфейсы.