Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Снова про абстрактные классы
 
 автор: Igorek   (11.12.2012 в 09:56)   письмо автору
 
 

Возник вопрос о необходимости объявлять класс именно как abstract.
Что дает нам abstract:
1. Запрещение создание экземпляра такого класса? но это можно сделать в обычном классе объявив конструктор с модификатором доступа private.
2. Возможность переопределять методы в дочерних классах (полиморфизм в действии)? в не абстрактном также можно.
3. Возможность объявлять абстрактные методы? это единственная причина, которую я вижу. Объявив абстрактный метод в базовом классе и не переопределив его в дочернем - даст нам фатальную ошибку времени выполнения.

Т.е. именно Абстрактный класс необходим в случае, когда мы хотим быть уверены, что некоторые методы (определенные как абстрактные) будут обязательно переопределены в дочерних классах.

Поправьте, если ошибаюсь

  Ответить  
 
 автор: jackson   (13.12.2012 в 00:53)   письмо автору
 
   для: Igorek   (11.12.2012 в 09:56)
 

все правильно понимаете - абстрактный класс используется для гарантии наличия необходимого функционала у дочерних классов.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования