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();
Աբստրակտ դասերը օգտագործվում են ընդհանուր ինտերֆեյս և գործառնականություն սահմանելու համար կապված դասերի խմբի համար, թողնելով իրականացման մանրամասները հատուկ ժառանգող դասերին։ Կոդի օգտագործողի տեսանկյունից, հնարավոր է աշխատել ժառանգորդ դասերի օբյեկտների հետ՝ օգտագործելով հիմնական աբստրակտ դասի տիպը, ինչը ապահովում է պոլիմորֆիզմ։