Cechy a interfejsy
W poprzednim wpisie przedstawiono podstawowe informacje o cechach (ang. trait). Przyjrzyjmy się im bliżej. Porównanie: cechy a interfejsy Cecha nie może implementować interfejsu, tylko klasa. Cecha może zawierać potrzebny kod do zaimplementowania interfejsu:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
interface AllowsOpen{ public function open(); } trait Container{ public function open(){ echo 'Something is inside!'; } } class Can implements AllowsOpen{ use Container; } |
W specyfikacji możemy przeczytać, że cecha ma pierwszeństwo, jeśli chodzi o nadpisywanie danej metody dziedziczonej przez klasę. Jednak sama klasa może nadpisać metodę […]