Абстрактные классы в Java
Абстрактные классы в Java используются для создания классов, которые могут содержать абстрактные методы – методы без реализации, которые должны быть переопределены в подклассах. Абстрактный класс не может быть инициирован, то есть мы не можем создать объекты этого класса. Зато он может содержать как абстрактные методы, так и обычные методы с реализацией. Для чего же вообще нужны классы, экземпляры которых мы не можем создать? Чтобы получше понять суть абстрактных классов рекомендую сначала прочитать статью Зачем нужно наследование в ООП...
Модификатор abstract используется в Java, чтобы указать, что метод или класс не имеют реализации в данном классе и должны быть реализованы в подклассе. Абстрактные классы используются, когда нужно создать класс, но необходимо, чтобы дочерние классы добавили свои уникальные свойства или методы. Абстрактные классы могут содержать абстрактные методы, которые не имеют реализации, и дочерние классы должны реализовать эти методы. Абстрактные методы могут быть определены только в абстрактных классах, и они не имеют тела (реализации)...