Абстрактные классы

Идея абстрактного класса заключается в следующем предположении – для работы иногда вам требуются не полностью готовые классы, а “заготовки” (полуфабрикаты, если хотите). Они уже кое-что умеют, но в “сыром виде” их использовать нельзя. Причем здесь стоит выделить два момента:

  1. Создать экземпляр такого класса нельзя

  2. Такой класс требует доработки под какие-либо конкретные условия.

Техническая сторона достаточно простая – для объявления абстрактного класса достаточно добавить ключевое слово abstract в описании класса.

abstract public class AbstractModel {
    ...
}

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

Для этого необходимо не только класс описать как абстрактный, но и метод, который должен обязательно реализовать наследник. Форма записи достаточно несложная. Здесь только надо отметить, что тело метода отсутствует совсем – сразу за описанием метода ставится точка с запятой.

Например:

public abstract class AbstractModel
{
   public abstract void processModel();
}

Вопрос 1

В чём заключается разница между абстрактным классом и интерфейсом?

Last updated