Идея абстрактного класса заключается в следующем предположении – для работы иногда вам требуются не полностью готовые классы, а “заготовки” (полуфабрикаты, если хотите). Они уже кое-что умеют, но в “сыром виде” их использовать нельзя. Причем здесь стоит выделить два момента:
Техническая сторона достаточно простая – для объявления абстрактного класса достаточно добавить ключевое слово abstract в описании класса.
abstract public class AbstractModel {
...
}
Мы можем заставить разработчика НЕ пользоваться нашим классом впрямую, мы можем еще более жестко подойти к наследованию – установить правила, которые заставят класс-наследник реализовать определенные методы.
Для этого необходимо не только класс описать как абстрактный, но и метод, который должен обязательно реализовать наследник. Форма записи достаточно несложная. Здесь только надо отметить, что тело метода отсутствует совсем – сразу за описанием метода ставится точка с запятой.
Например:
public abstract class AbstractModel
{
public abstract void processModel();
}
Вопрос 1
В чём заключается разница между абстрактым классом и интерфейсом?