Наблюдая на разных программных форумах время от времени всплывающий вопрос от начинающих в попытке понять что же такое абстрактный класс, я решил попытаться написать собственное объяснение этого явления. На самом деле описать самую ИДЕЮ абстрактного класса не так просто как его чисто "физические" свойства, в общем не знаю получилось у меня или нет, первую попытку я просто удалил даже не "публикуя" эта вроде вышла получше, правда я так и не понял удалось ли мне или нет так как описывать идеологию куда сложнее чем воткните этот провод туда и напишите вот такой код Что такое абстрактный класс
Хотелось бы немного предостеречь от бездумного использования данного инструмента. Абстрактные классы бывает люто выбешивают, т.к. у наследников приходится писать реализации или затычки для всех абстрактных методов каждый раз, даже если на них абсолютно пофиг. Поэтому, вместо абстрактных методов предпочитаю обычные виртуальные с пустой реализацией. Толку от них столько же, а жить не мешают.
В этом вы разумеется правы, но такие вещи это уже из разряда "Почувствуй силу Люк" Такое осознание приходит с опытом и "шишками", а уж тем более такие вещи как уровни абстракции, абстрактные классы, интерфейсы, наследование, полиморфизм и тд и тп, это вообще сродни искусству на мой взгляд
Сразу вспоминается из статьи на хабре: "и до сих пор никто не знает, чем отличается абстрактный класс от интерфейса"
Да это просто перед разработкой Java кто то встал и сказал, а чем наш язык будет отличатся от C++ ?, так в Java появились интерфейсы и исчезло множественное наследование (шЮтка разумеется)