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

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

1. Создать экземпляр такого класса нельзя
2. Такой класс требует доработки под какие-либо конкретные условия.

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

```
abstract public class AbstractModel {
    ...
}
```

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

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

Например:

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

Вопрос 1

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://comaqa.gitbook.io/java-automation/oop-v-java/abstraktnye-klassy.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
