Абстрактный класс может иметь абстрактные методы и «конкретные» методы.
«Конкретные» методы могут использовать абстрактные методы и могут быть уверены, что они (правильные) выполняются во время выполнения.Потому что каждый (не абстрактный) подкласс должен их реализовывать.(И это не будет экземпляром абстрактного класса itselfe).
Так что все дело в сохранности!- Это гарантирует, что программист, который хочет создать подкласс абстрактного класса, должен реализовать абстрактный метод (ы).
Если вы делаете это только с нормальным классом, тогда класс, соответствующий абстрактному классу, будет иметь (абстрактные) методы с пустой реализацией и только для программиста будет замечено, что он должен переопределить этот метод.
Конечно, вы можете использовать концепцию абстрактных классов для других мыслей, таких как createне инстанцируемые классы, но это не главное.