Автор оригинала: Rashmi.
Я прочитал этот вопрос в Quora и подумал, что это очень актуальный вопрос. Только об этом мы никогда не думаем, когда изучаем абстрактные классы. Мы как бы принимаем, что объявление абстрактных классов является нормой. Продолжив самоанализ, я нашел несколько причин, которые перечислил в своем ответе. Вот оно начинается:
Зачем нам нужно определять абстрактные методы в классе, когда в будущем нам очень понадобится переопределить его?
Чтобы класс мог отложить поведение метода до конкретных реализаций. Если мы возьмем наиболее часто используемый и шаблонный пример класса Форма , метод область() не знает, что возвращать. Площадь | формы определяется видом Формы это – Квадрат или a Круг . Следовательно, Квадрат и Круг классы должны добавить реализацию метода область .
Теперь что, если нет абстрактного метода область в Форма и просто в Площадь и Кружок занятия? Допустим, на следующий день вы добавляете еще один подкласс Пентагон и забываете добавить метод area() . Тем не менее, каждая Форма должна иметь область . Как вы гарантируете, что это произойдет с помощью кода? Объявив абстрактный метод area() в Форме . Это гарантирует, что Пентагон класс не будет строиться до тех пор, пока область не будет переопределена.
Фото предоставлено: Гугл
Оригинал: “https://www.codementor.io/@rashmisaha/why-do-we-need-to-define-abstract-methods-in-a-class-when-in-future-we-will-very-well-need-to-override-it-74qozqibi”