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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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



http://monitorrr.narod.ru/ интересует прокат байдарок.


ГЛАВА 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