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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





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