PHP 5 about PHP 5 старт PHP 5 установка PHP 5 синтаксис PHP 5 змінні PHP 5 echo і print PHP 5 типи даних PHP 5 strings PHP 5 константи PHP 5 оператори PHP 5 if...else...elseif PHP 5 switch PHP 5 цикл while PHP 5 for і foreach PHP 5 функції PHP 5 масиви PHP 5 сортування масивів PHP 5 superglobals PHP 5 форми input PHP 5 форми обробка PHP 5 форми - обов'язкові поля PHP 5 форми - перевірка електронної пошти і URL РНР 5 форми заповнення PHP 5 багатовимірні масиви PHP 5 час і дата PHP 5 include PHP 5 файли обробка PHP 5 файли Open/Read/Close PHP 5 файли створення / запис PHP 5 файли завантаження PHP MySQL бази даних PHP MySQL Підключення PHP MySQL Створення бази даних PHP MySQL Створення таблиці PHP MySQL вставка даних PHP MySQL Отримання ідентифікатора останнього доданого запису PHP MySQL вставка кількох записів PHP MySQL Підготовлені вирази PHP MySQL відображення даних з таблиці PHP MySQL Видалення даних PHP MySQL оновлення даних PHP MySQL обмежити вибірку даних PHP регулярні вирази 1 PHP регулярні вирази 2 PHP регулярні вирази 3 PHP регулярні вирази 4 PHP ООП PHP ООП class PHP ООП модифікатори доступу PHP ООП extends PHP ООП статичні методи і властивості, константи PHP ООП abstract PHP ООП interface PHP альтернативний синтаксис керуючих конструкцій

PHP ООП abstract


PHP 5 підтримує визначення абстрактних класів і методів.

  • Створювати екземпляр класу, який був оголошений абстрактним, не можна.
  • Клас, в якому оголошено хоча б один абстрактний метод, повинен також бути оголошений абстрактним.
  • Методи, оголошені як абстрактні, несуть, по суті, лише описовий зміст і не можуть включати будь-якої функціонал.
  • Клас може бути оголошений як абстрактний за допомогою використання ключового слова abstract , для виключення з обробки движком опису класу. Однак, ви можете успадковувати абстрактні класи.

Практичний приклад: 

<?php

abstract class AbstractCat
{
    /* Дані методи повинні бути реалізовані в дочірньому класі */
    abstract public function setAge($age);

    abstract public function getAge();

    abstract public function setName($name);

    abstract public function getName();


    /* Загальний відкритий метод - доступ до абстрактних методів*/
    public function getInfo()
    {
        echo $this->getName();      //  доступ до абстрактних методів
        echo '<br>';
        echo $this->getAge();       //  доступ до абстрактних методів
        echo '<br>';
    }

}

class Cat1 extends AbstractCat
{
    private $name;
    private $age;

    // наслідуємо абстрактні методи
    public function setAge($age)
    {
        $this->age = $age;
    }

    public function getAge()
    {
        return $this->age;
    }

    public function setName($name)
    {
        $this->name = $name;
    }

    public function getName()
    {
        return $this->name;
    }


}

class Cat2 extends AbstractCat
{
    public $name;
    public $age;
    public $poroda = "PERS";

    // наслідуємо абстрактні методи
    public function setAge($age)
    {
        $this->age = $age;
    }

    public function getAge()
    {
        return $this->age;
    }

    public function setName($name)
    {
        $this->name = $name;
    }

    public function getName()
    {
        return $this->name;
    }

    public function getPoroda(){
        echo $this->poroda;
    }


}

$class1 = new Cat1();
$class1->setName('Myrka');
$class1->setAge(2);
$class1->getInfo();                     //  Myrka 2

$class2 = new Cat2();
$class2->setName('Snizok');
$class2->setAge(1);
$class2->getInfo();                     //  Snizok 1
$class2->getPoroda();                   //  PERS

?>

Абстрактні методи

Метод може бути оголошений як abstract , таким чином відклавши його визначення наслідуваним класам. Клас, який включає абстрактні методи, повинен бути оголошений як abstract .

<?php

abstract class MyBaseClass
{
    abstract function display();
}

?>

 


Наш партнер:
beta test mp3 playlist downloader