| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Философия программирования > Abstract class не андестенд |
| Автор: Logree 28.1.2008, 00:19 |
| Здравствуйте уважаемые.. не мог бы кто дать пример где явно показан случай в котором использование абстрактных классов рациананально.... ну ни как я не могу понять зачам их использовать... они дают ещё какие нибудь приимущества кроме экономии памяти? |
| Автор: skyboy 28.1.2008, 00:51 | ||
Добавлено через 4 минуты и 52 секунды вообще, прелесть абстрактных классов - в первую очередь, далеко не в экономии памяти. А именно в абстрагировании. Они - это крайний случай предков нескольких разных по логике, но схожих по интерфейсу классов. К примеру, абстрактный класс "передвижной объект" с единственным методом "двигаться в точку" относится и к человеку, и к автомобилю. Несмотря на то, что в остальном эти классы различаются радикально. И чтоб иметь возможность передвинуть объект, независимо от того, какого класса он, можно объявить все передвижные объекты наследником класса "передвижной объект". в принципе, неважно, будет ли класс "передвижной объект" числиться абстрактным, или же будет иметь некоторую обощенную логику(к примеру, запрос e глобального объекта "окружающая среда" информации о том, может ли он передвинуться в заданную точку). Просто определение "абстрактный класс" подчеркивает: никакой наследуемой потомками логики нет: только интерфейс. |
| Автор: 0000 28.1.2008, 15:35 | ||||
думаю пример понятен...все общие поля и методы определили только в абстрактном классе, наследники подхватят их автоматически... и плюс в использовании...например так:
здесь работает полиморфизм..мы имея лишь общий доступ в фигурам и фактически вызывая метод Draw у класса Shape на деле вызываем переопределенный метод в конкретном классе |
| Автор: skyboy 28.1.2008, 16:50 |
| вобщем, абстрактные классы просто доводят концепцию полиморфизма до абсолюта: классы могут иметь абсолютно разную логику, но идентичный интерфейс. |
| Автор: chieftain 4.2.2008, 10:11 |
| Если говорить об абстрактных класссах в java, то эти классы собирают в себя наиболее общие методы (функции) и это на самом деле очень удобно, причем в JAVA абстрактный класс может содержать и реальные, а не только объявленные абстрактные методы. |