⊗ppOpIfPm 69 of 107 menu

Παράμετροι σε μεθόδους διεπαφών στο OOP στην PHP

Κατά την περιγραφή μεθόδων σε διεπαφές είναι απαραίτητο να προσδιορίζονται όχι μόνο τα ονόματα των ίδιων των μεθόδων, αλλά και οι παράμετροι που δέχονται.

Ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε μια διεπαφή iMath, που περιγράφει μια κλάση για μαθηματικές πράξεις πρόσθεσης, αφαίρεσης, πολλαπλασιασμού και διαίρεσης. Ας μοιάζει αυτή η διεπαφή έτσι:

<?php interface iMath { public function sum(); public function subtract(); public function multiply(); public function divide(); } ?>

Αυτή τη στιγμή οι μέθοδοι της διεπαφής μας δεν δέχονται καμία παράμετρο. Και στην πραγματικότητα οι μέθοδοι της κλάσης, που θα υλοποιεί αυτήν τη διεπαφή, επίσης δεν θα πρέπει να δέχονται παραμέτρους, αλλιώς θα προκύψει σφάλμα.

Ας προσδιορίσουμε τις παραμέτρους των μεθόδων στην διεπαφή μας:

<?php interface iMath { public function sum($a, $b); public function subtract($a, $b); public function multiply($a, $b); public function divide($a, $b); } ?>

Ας γράψουμε τώρα την υλοποίηση της διεπαφής μας:

<?php class Math implements iMath { public function sum($a, $b) { return $a + $b; } public function subtract($a, $b) { return $a - $b; } public function multiply($a, $b) { return $a * $b; } public function divide($a, $b) { return $a / $b; } } ?>

Εάν προσπαθήσουμε στην κλάση μας να ορίσουμε διαφορετικό αριθμό παραμέτρων - απλά δεν θα τα καταφέρουμε: η PHP θα εμφανίσει σφάλμα. Έτσι δεν θα μπορέσουμε ούτε τυχαία να ξεχάσουμε κάποια παράμετρο, ούτε τυχαία να προσθέσουμε περιττή.

Ας υποθέσουμε ότι μας δίνεται αυτή η διεπαφή iUser:

<?php interface iUser { public function setName($name); public function getName(); public function setAge($age); public function getAge(); } ?>

Δημιουργήστε μια κλάση User, που θα υλοποιεί αυτήν τη διεπαφή.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη