П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 4064 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 6717 раз(а).

Учебник HTML.
Просмотров 3688 раз(а).

Руководство по PHP5.
Просмотров 5958 раз(а).

Хостинг через призму DNS.
Просмотров 4766 раз(а).

Подборка текстов стандартных документов.
Просмотров 56212 раз(а).

Учебник PHP - Самоучитель
Просмотров 3654 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 8238 раз(а).

Внешние атаки...
Просмотров 4507 раз(а).

Учебник PHP.
Просмотров 3149 раз(а).

SSI в примерах.
Просмотров 156 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





ГЛАВА 6. Объектно-ориентированные возможности РНР

Абстрактные классы

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

В РНР отсутствует прямая поддержка абстрактных классов, однако существует простое обходное решение — достаточно определить в «абстрактном» классе конструктор и включить в него вызов die(). Вернемся к классам из листинга 6.4. Скорее всего, вам никогда не придется создавать экземпляры классов Land и Vehicle, поскольку они не могут представлять физические объекты. Для представления реальных объектов(например, автомобилей) следует создать класс, производный от этих классов. Следовательно, чтобы предотвратить возможное создание объектов классов Land и Vehicle, необходимо включить в их конструкторы вызовы die(), как показано в листинге 6.5.

Листинг 6.5. Создание абстрактных классов

<?
class Vehicle {
  Объявления атрибутов...

  function Vehicle() {
    die("Cannot create Abstract Vehicle class!");
  }

  Объявления других методов...
}

class Land extends Vehicle {
  Объявления атрибутов...

  function Land() {
    die("Cannot create Abstract Land class!");
  }

  Объявления других методов.
}

class Car extends Land {
  Объявления атрибутов...
  Объявления методов...
}
?>

Попытка создания экземпляра этих абстрактных классов приведет к выдаче сообщения об ошибке и завершению программы.

Назад | Содержание раздела | Общее Содержание | Вперед



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru