PHP ООП-де трейттердин абстракттуу ыкмалары
Трейттерде кээ бир ыкмаларды абстракттуу деп жарыялоого болот. Бул учурда бул трейтти колдонгон класста мындай ыкманы ишке ашырууга милдеттүү болот. Бул учурда трейттин абстракттуу ыкмалары жекече боло албайт.
Келгиле, мисал менен карайлы. Бизде мындай трейт бар деп коёлу:
<?php
trait TestTrait
{
public function method1()
{
return 1;
}
abstract public function method2();
}
?>
Test классы биздин трейтти колдонсун деп коёлу.
Трейтте абстракттуу ыкманын болушу программистти аны класста ишке ашырууга милдеттендирет,
ал эмес болсо PHP катасы чыгат.
method2 ыкмасы менен бирге Test классын түзөлү:
<?php
class Test
{
use TestTrait; // трейтти колдонобуз
// Абстракттуу ыкманы ишке ашырабыз:
public function method2()
{
return 2;
}
}
new Test;
?>
Менин TestTrait трейтимдин жана Test класымдын кодун көчүрүңүз.
Класстан method2 ыкмасын өчүрүңүз. Анын ишке ашырылышынын жоктугу
PHP катасына алып келет экендигине көзүңүз менен ишениңиз.