⊗jsOpIhCn 33 of 60 menu

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

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

class User { constructor(name, surn) { this.name = name; this.surn = surn; } getName() { return this.name; } getSurn() { return this.surn; } }

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

class Student extends User { }

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

class Student extends User { constructor(name, surn, year) { } }

Σε αυτή την περίπτωση, πρέπει υποχρεωτικά να καλέσουμε στην πρώτη γραμμή τον κατασκευαστή του γονέα μέσω του super:

class Student extends User { constructor(name, surn, year) { super(); } }

Η εντολή super ουσιαστικά είναι ο κατασκευαστής του γονέα. Επομένως, ας περάσουμε σε αυτόν τις απαιτούμενες παραμέτρους:

class Student extends User { constructor(name, surn, year) { super(name, surn); } }

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

class Student extends User { constructor(name, surn, year) { super(name, surn); this.year = year; } }

Ας φτιάξουμε μια μέθοδο πρόσβασης (getter) για το έτος φοίτησης:

class Student extends User { constructor(name, surn, year) { super(name, surn); this.year = year; } 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 για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη