Абстрактный метод
В чем конкретно функция абстрактного метода? И чем он отличается от не абстрактного? В абстрактных классах.
В чем конкретно функция абстрактного метода? И чем он отличается от не абстрактного? В абстрактных классах.
Функция абстрактного метода состоит в определении контракта и шаблона для реализации конкретной функциональности в производных классах. Соответственно абстрактный метод отличается тем, что не имеет реализации. В случае абстрактного класса, не абстрактный метод предоставляет реализацию по умолчанию, тогда как абстрактный метод не предоставляет какой-либо реализации.
Абстрактный означает неважно как, скажем вам ставят задачу добраться до от пункта А до пункта Б. Добраться здесь абстрактно (для ставящего задачу) - неважно как, на машине, пешком, самолетом, на пароходе или ковре-самолете - это никого не интересует. Тот кому предстоит добираться вынужден будет эту абстракцию добраться наполнить реальным смыслом, то есть, как принято говорить в Java/ООП реализовать или implement уже конкретно. В терминах Java это означает реализовать абстрактный метод. Примерно так:
abstract class Маршрут {
abstract void добраться();
}
class АвиаМаршрут extends Маршрут {
@Override
void добраться() {
полететь(купитьБилет());
}
}
P.S. Извиняюсь за кириллические идентификаторы :)