Աբստրակտ մեթոդներ trait-ներում OOP-ում PHP-ում
Trait-ներում հնարավոր է որոշ մեթոդներ հայտարարել աբստրակտ: Այս դեպքում այդ trait-ն օգտագործող կլասը պարտավոր կլինի իրականացնել այդպիսի մեթոդ: Միաժամանակ trait-ի աբստրակտ մեթոդները չեն կարող լինել private:
Դիտարկենք օրինակով: Ենթադրենք ունենք հետևյալ trait-ը:
<?php
trait TestTrait
{
public function method1()
{
return 1;
}
abstract public function method2();
}
?>
Ենթադրենք մեր trait-ն օգտագործվում է Test կլասի կողմից:
Trait-ում աբստրակտ մեթոդի առկայությունը կպարտադրի
ծրագրավորողին իրականացնել այն կլասում, հակառակ դեպքում
կառաջանա PHP-ի սխալ:
Ստեղծենք Test կլասը՝ միասին
method2 մեթոդի հետ:
<?php
class Test
{
use TestTrait; // օգտագործում ենք trait-ը
// Իրականացնում ենք աբստրակտ մեթոդը:
public function method2()
{
return 2;
}
}
new Test;
?>
Պատճենեք իմ TestTrait trait-ի կոդը
և իմ Test կլասի կոդը: Ջնջեք
կլասից method2 մեթոդը: Համոզվեք
նրան, որ դրա իրականացման բացակայությունը կհանգեցնի
PHP-ի սխալի: