⊗tsSpOpAMPrt 11 of 37 menu

Modifikátor protected v TypeScript

Privátní vlastnosti a metody nejsou děděny potomky. Někdy však potřebujeme, aby vlastnost nebo metoda nebyla přístupná zvenčí, ale byla děděna potomky. V tomto případě bychom měli použít modifikátor protected.

Pojďme to vyzkoušet v praxi. Deklarujme v naší třídě User metodu cape jako chráněnou pomocí modifikátoru protected:

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

Vytvořme třídu Student, která dědí od třídy User:

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

Přidejme metodu, která vypisuje jméno:

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

A nyní použijme chráněnou metodu rodiče uvnitř metody potomka:

class Student extends User { private name: string; constructor(name: string) { super(); this.name = name; } public showName(): string { return this.cape(this.name); // použijeme metodu rodiče } }

Vytvořme objekt naší třídy:

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

Použijme metodu pro výpis studenta:

console.log(student.showName());

Pokus o volání metody cape mimo třídu však povede k chybě:

console.log(student.cape('test')); // chyba

Je dána následující třída:

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

Dědejte z této třídy třídu Employee, která přidá chráněnou vlastnost salary, a také gettery všech vlastností, jak svých, tak i děděných.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout