Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Для новичков > Abstract Methods |
Автор: Christoph 17.1.2009, 21:11 |
Не могу понять зачем нужные абстрактные методы?! И для чего его создавать? если нужно создавать наследника, и только потом использовать! Искал в инете, в книге инфу, толком нет объяснения |
Автор: Bose 17.1.2009, 21:57 |
Как на самом деле не знаю, но могу нафантазировать следующее: Полагаю, что абстрактные методы введены в язык как попытка заменить интерфейсы. В первых версиях Delphi вроде бы не было поддержки интерфейсов(IInterface), а необходимость определять методы в предке была. Вероятно, затем их и ввели. Если есть опыт работы с базами данных в Дельфи, то советую посмотреть например класс TDataset. Отличный пример использования абстрактных методов. |
Автор: skyboy 17.1.2009, 22:54 |
интерфейсы Delphi не позволяют включать в них реализацию: только описание(да, да, в классе, реализующем интерфейс, будет делегат). абстрактные же методы входят в состав "обычных" классов, осталные методы того же класса вполне могут быть не абстрактными. класс-предок, реализующий некий http://en.wikipedia.org/wiki/Template_method_pattern проще и нагляднее будет, как класс с абстрактными методами, чем интерфейс + класс, реализующий только пару из объявленных в интерфейсе методов(я уже слегка подзабыл: а вообще возможно в классе, реализующем некий интерфейс, реализовать не все методы, объявленные в интерфейсе?) Добавлено через 1 минуту и 37 секунд пожалуй, абстрактные методы не столько для описания интерфейса класса(ибо есть интерфейсы и так), а для явной или неявной реализации шаблонного метода и чтоб обязать(обязать программиста на уровне синтаксиса) переопределять методы-"пустышки" в потомках. |
Автор: skyboy 17.1.2009, 23:53 |
значит, вот ещё отличие абстрактных методов от полностью абстрактных классов ![]() |