Sobes.tech
Junior

Ի՞նչ է աբստրակտ դասը։

sobes.tech AI

Պատասխան AI-ից

Աբստրակտ դասը այն դասն է, որը չի կարող ուղղակիորեն ինստանցիացվել, այսինքն՝ նրա օբյեկտը հնարավոր չէ ստեղծել new-ի միջոցով։ Այն նախատեսված է որպես հիմք՝ այլ դասերի (մարմնավորողների) համար։

Աբստրակտ դասի հիմնական հատկանիշները՝

  • Դեկլարարվում է abstract բանալի բառով։
  • Կարող է պարունակել ինչպես աբստրակտ, այնպես էլ սովորական (կոնկրետ) մեթոդներ։
  • Աբստրակտ մեթոդները դեկլարարվում են abstract-ով և չունեն մարմին (իրականացում)։ Դրանք պետք է իրականացնել ժառանգվող ոչ-աբստրակտ դասերում։
  • Կարող է պարունակել կոնստանտ արժեքներ և հատկություններ։
<?php

abstract class AbstractClass
{
    // Աբստրակտ մեթոդ՝ պետք է իրականացնել ժառանգվող դասում
    abstract protected function abstractMethod();

    // Սովորական մեթոդ
    public function concreteMethod()
    {
        echo "Սա կոնկրետ մեթոդ է\n";
    }
}

class ConcreteClass extends AbstractClass
{
    // Աբստրակտ մեթոդի իրականացում
    protected function abstractMethod()
    {
        echo "Սա աբստրակտ մեթոդի իրականացումն է\n";
    }
}

// Չի կարելի ստեղծել աբստրակտ դասի օբյեկտ
// $obj = new AbstractClass(); // Խախտում

// Կարող է ստեղծել կոնկրետ դասի օբյեկտ
$obj = new ConcreteClass();
$obj->abstractMethod();
$obj->concreteMethod();

Աբստրակտ դասերը օգտագործվում են ընդհանուր ինտերֆեյս և գործառնականություն սահմանելու համար կապված դասերի խմբի համար, թողնելով իրականացման մանրամասները հատուկ ժառանգող դասերին։ Կոդի օգտագործողի տեսանկյունից, հնարավոր է աշխատել ժառանգորդ դասերի օբյեկտների հետ՝ օգտագործելով հիմնական աբստրակտ դասի տիպը, ինչը ապահովում է պոլիմորֆիզմ։