П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
                                                 
Главная

О проекте

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

MySQL

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

Хостинг

Другое







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

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

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

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

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

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

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

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

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

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

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

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



 
 



ГЛАВА 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-2011 Project.Net.Ru


Реклама: Моби03 htc hero ремонт в Москве