⊗tsSpOpAMPrt 11 of 37 menu

TypeScript'te protected Değiştiricisi

Özel (private) özellikler ve metodlar alt sınıflar tarafından kalıtımla alınmaz. Ancak bazen, bir özelliğin veya metodun dışarıdan erişilemez olmasını ama alt sınıflar tarafından miras alınabilmesini isteriz. Bu durumda protected değiştiricisi kullanılmalıdır.

Pratikte deneyelim. User sınıfımızda cape metodunu protected değiştiricisi kullanarak korumalı olarak tanımlayalım:

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

User sınıfından miras alan Student sınıfını oluşturalım:

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

İsmi gösteren bir metod ekleyelim:

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

Şimdi, üst sınıfın korumalı metodunu alt sınıfın metodu içinde kullanalım:

class Student extends User { private name: string; constructor(name: string) { super(); this.name = name; } public showName(): string { return this.cape(this.name); // üst sınıfın metodunu kullanıyoruz } }

Sınıfımızın bir nesnesini oluşturalım:

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

Öğrenciyi göstermek için metodu kullanalım:

console.log(student.showName());

Ancak cape metodunu sınıf dışından çağırmaya çalışmak bir hataya yol açacaktır:

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

Aşağıdaki sınıf verilmiştir:

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

Bu sınıftan, hem kendi hem de miras alınan tüm özellikler için getter'ların yanı sıra korumalı bir salary özelliği ekleyen Employee sınıfını türetin.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet