⊗tsSpOpAMPrt 11 of 37 menu

TypeScript의 protected 수정자

비공개 속성과 메서드는 자식 클래스에 의해 상속되지 않습니다. 그러나 때로는 속성이나 메서드가 외부에서 접근할 수 없도록 하면서 자식 클래스에게 상속되도록 해야 할 때가 있습니다. 이러한 경우에는 protected 수정자를 사용해야 합니다.

실습을 통해 알아보겠습니다. 우리 클래스 Userprotected 수정자를 사용하여 보호된 메서드 cape를 선언해 보겠습니다:

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

User 클래스를 상속하는 Student 클래스를 만들어 보겠습니다:

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 클래스를 상속받으세요. Employee 클래스는 보호된 속성 salary를 추가하고, 자신의 속성과 상속받은 속성 모두에 대한 게터를 제공해야 합니다.

한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부