⊗tsSpOpAMPrt 11 of 37 menu

Ο τροποποιητής protected στο TypeScript

Οι ιδιωτικές ιδιότητες και μέθοδοι δεν κληρονομούνται από τους απογόνους. Ωστόσο, μερικές φορές χρειαζόμαστε μια ιδιότητα ή μέθοδο να μην είναι προσβάσιμη από έξω, αλλά να κληρονομείται από τους απογόνους. Σε αυτήν την περίπτωση, θα πρέπει να χρησιμοποιήσουμε τον τροποποιητή protected.

Ας δοκιμάσουμε στην πράξη. Ας δηλώσουμε στην κλάση μας User μια μέθοδο cape ως προστατευμένη χρησιμοποιώντας τον τροποποιητή protected:

class User { protected cape(str: string) { return str[0].toUpperCase() + str.slice(1); } }

Ας φτιάξουμε μια κλάση Student, που κληρονομεί από την κλάση User:

class Student extends User { private name: string; constructor(name: string) { super(); this.name = name; } }

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

class Student extends User { private name: string; constructor(name: string) { super(); this.name = name; } public showName(): string { return this.name; } }

Και τώρα ας χρησιμοποιήσουμε την προστατευμένη μέθοδο του γονέα μέσα στη μέθοδο του απογόνου:

class Student extends User { private name: string; constructor(name: string) { super(); this.name = name; } public showName(): string { return this.cape(this.name); // χρησιμοποιούμε τη μέθοδο του γονέα } }

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

let student: Student = new Student('john');

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

console.log(student.showName());

Ωστόσο, μια προσπάθεια να καλέσουμε τη μέθοδο cape από έξω από την κλάση θα προκαλέσει σφάλμα:

console.log(student.cape('test')); // σφάλμα

Δίνεται η ακόλουθη κλάση:

class User { protected name: string; protected surn: string; constructor(name: string, surn: string) { this.name = name; this.surn = surn; } }

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