⊗ppOpFnCl 63 of 107 menu

Αφηρημένες Κλάσεις στην αντικειμενοστρεφή προγραμματισμό στην PHP

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

Σε αυτή την περίπτωση, υποτίθεται ότι θα δημιουργείτε αντικείμενα των κλάσεων Employee και Student, αλλά αντικείμενα της κλάσης User - δεν θα δημιουργείτε, καθώς αυτή η κλάση χρησιμοποιείται μόνο για την ομαδοποίηση κοινών ιδιοτήτων και μεθόδων των κληρονόμων της.

Σε αυτή την περίπτωση, μπορείτε να απαγορεύσετε υποχρεωτικά τη δημιουργία αντικειμένων της κλάσης User, ώστε εσείς ή ένας άλλος προγραμματιστής πουθενά κατά λάθος να μην τα δημιουργήσετε.

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

Για να δηλώσετε μια κλάση ως αφηρημένη, πρέπει κατά τη δήλωσή της να γράψετε τη λέξη-κλειδί abstract:

<?php abstract class User { } ?>

Λοιπόν, ας γράψουμε την υλοποίηση της αφηρημένης κλάσης User. Ας έχει μια ιδιωτική ιδιότητα name, καθώς και getters και setters για αυτήν:

<?php abstract class User { private $name; public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } } ?>

Η προσπάθεια δημιουργίας αντικειμένου της κλάσης User θα προκαλέσει σφάλμα:

<?php $user = new User; // θα εμφανίσει σφάλμα ?>

Ωστόσο, θα είναι δυνατή η κληρονομικότητα από την κλάση μας. Ας φτιάξουμε την κλάση Employee, η οποία θα κληρονομεί από την αφηρημένη μας κλάση User:

<?php class Employee extends User { private $salary; public function getSalary() { return $this->salary; } public function setSalary($salary) { $this->salary = $salary; } } ?>

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

<?php $employee = new Employee; $employee->setName('john'); // μέθοδος γονέα, δηλαδή της κλάσης User $employee->setSalary(1000); // δική της μέθοδος, δηλαδή της κλάσης Employee echo $employee->getName(); // θα εμφανίσει 'john' echo $employee->getSalary(); // θα εμφανίσει 1000 ?>

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

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