⊗ppOpIhCn 30 of 107 menu

Κατασκευαστής στην κληρονομικότητα στην ΑΟΠ στην PHP

Στην κληρονομικότητα μπορούμε να αντικαθιστούμε τον κατασκευαστή του γονέα. Ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε την ακόλουθη κλάση γονέα:

<?php class User { private $name; private $surn; public function __construct($name, $surn) { $this->name = $name; $this->surn = $surn; } public function getName() { return $this->name; } public function getSurn() { return $this->surn; } } ?>

Ας υποθέσουμε ότι από την γονική κλάση κληρονομεί η ακόλουθη κλάση:

<?php class Student extends User { } ?>

Ας υποθέσουμε ότι θέλουμε στην κλάση-απόγονου να επεκτείνουμε τον κατασκευαστή, προσθέτοντας σε αυτόν επιπλέον παραμέτρους:

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { } } ?>

Σε αυτήν την περίπτωση πρέπει αναγκαστικά να καλέσουμε στην πρώτη γραμμή τον κατασκευαστή του γονέα μέσω parent::__construct():

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { parent::__construct($name, $surn); } } ?>

Η εντολή parent::__construct() στην ουσία είναι ο κατασκευαστής του γονέα. Επομένως θα περάσουμε σε αυτόν τις απαιτούμενες παραμέτρους:

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { parent::__construct($name, $surn); } } ?>

Τώρα στον απόγονο το έτος φοίτησης θα το γράψουμε στην δικιά του ιδιότητα του απογόνου:

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { parent::__construct($name, $surn); $this->year = $year; } } ?>

Ας φτιάξουμε μια μέθοδο λήψης (getter) για το έτος φοίτησης:

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { parent::__construct($name, $surn); $this->year = $year; } public function getYear() { return $this->year; } } ?>

Ας υποθέσουμε ότι η κλάση Employee κληρονομεί από την κλάση User από αυτό το μάθημα.

Αντικαταστήστε στην κλάση Employee τον κατασκευαστή του γονέα, προσθέτοντας σε αυτόν παράμετρο με την ηλικία και τον μισθό.

Φτιάξτε μεθόδους λήψης (getters) για την ηλικία και τον μισθό.

Ελληνικά
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 για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη