Αφηρημένες μέθοδοι traits στην OOP στην PHP
Στα traits μπορούν ορισμένες μέθοδοι να δηλωθούν αφηρημένες. Σε αυτήν την περίπτωση, η κλάση που χρησιμοποιεί αυτό το trait, θα είναι υποχρεωμένη να υλοποιήσει μια τέτοια μέθοδο. Σε αυτήν την περίπτωση, οι αφηρημένες μέθοδοι του trait δεν μπορούν να είναι ιδιωτικές.
Ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε ένα 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;
?>
Αντιγράψτε τον κώδικα του trait μου TestTrait
και τον κώδικα της κλάσης μου Test. Αφαιρέστε από
την κλάση τη μέθοδο method2. Βεβαιωθείτε
ότι η απουσία υλοποίησής της οδηγεί
σε σφάλμα PHP.