тк 3 июля праздник (в беларуси), буду не онлайн (по возможности буду отвечать)

Абстрактные методы трейтов

В трейтах можно некоторые методы объявлять абстрактными. В этом случае класс, использующий этот трейт, обязан будет реализовать такой метод.

Давайте посмотрим на примере. Пусть у нас есть вот такой трейт:

<?php trait TestTrait { public function method1() { return 1; } // Абстрактный метод: abstract public function method2(); } ?>

Замечание: абстрактные методы трейта могут быть public или protected, но не private.

Пусть наш трейт используется классом Test. Наличие в трейте абстрактного метода обяжет программиста реализовать его в классе Test, иначе будет ошибка PHP.

Давайте сделаем класс Test месте с методом method2:

<?php class Test { use TestTrait; // используем трейт // Реализуем абстрактный метод: public function method2() { return 2; } } new Test; ?>

Скопируйте код моего трейта TestTrait и код моего класса Test. Удалите из класса метод method2. Убедитесь в том, что отсутствие его реализации приведет к ошибке PHP.