JLesson 15. Абстрактные классы.

Абстрактный класс — это базовый класс, который не подразумевает возможности создания объектов данного класса. Впрочем, в некоторых языках это возможно (например, в Delphi). Вы спросите, зачем же тогда вообще нужен такой класс? Абстрактный класс позволяет лучше описывать логику созданной вами иерархии классов. Допустим, вы знаете, что прямоугольник, квадрат и круг — это геометрические фигуры. При этом каждая из них имеет свою реализацию методов draw(рисование), square(вычисление площади фигуры) и также может иметь свой набор специфических методов. В этом случае нам совсем не нужно создавать объекты базового класса и вызывать его методы. Но при это все-таки мы будем знать, что каждый из производных классов по своей сути является геометрической фигурой. В Java чтобы сделать класс абстрактным, следует пометить его ключевым словом abstract.

Абстрактные методы — это методы, не имеющие конкретной реализации. Если хотя бы один из методов в классе помечен как abstract, то компилятор потребует от Вас обозначить весь класс, как абстрактный. Этим вы говорите компилятору: мой класс реализован не полностью. Пример абстрактного метода:

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

Таким образом, абстрактные классы в целом можно рассматривать как интерфейсы производных классов. Но в Java интерфейсы — это отдельная тема, которой и будет посвящена наша следующая статья.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *