Введение в абстрактные классы в Java
Иногда один класс описывает общее для нескольких типов, но сами
объекты этого класса создавать не планируют. На сайте есть записи
и статические страницы: у обоих есть заголовок и способ показа
на экране, а конкретные материалы - это классы Post
и Page, наследующие общую основу.
Абстрактный класс задаёт такую основу: в нём можно
хранить общие поля и методы, но экземпляр абстрактного класса
создать нельзя. Компилятор не примет выражение new Content(),
если Content объявлен абстрактным.
От обычного класса абстрактный отличается словом abstract
перед class. Наследование записывают через extends,
как у любого родителя:
abstract class Content {
}
class Post extends Content {
}
class Page extends Content {
}
Объекты создают только у конкретных классов-потомков. Общая логика остаётся в абстрактном родителе, отличия - в наследниках. В следующих уроках разберём объявление абстрактного класса, абстрактные и обычные методы, поля, конструктор и наследование.