[typescript] protected 접근 제어자와 클래스 상속
Proteted 키워드
protected
키워드는 클래스 멤버에 대한 접근 제어 레벨을 나타냅니다. 이 키워드가 붙은 멤버들은 해당 클래스에서 직접 접근 가능하고, 동일한 클래스를 상속한 하위 클래스에서도 접근 가능합니다. 하지만 클래스 밖에서는 접근이 불가능합니다.
class Person {
protected name: string;
constructor(name: string) {
this.name = name;
}
}
class Employee extends Person {
private department: string;
constructor(name: string, department: string) {
super(name);
this.department = department;
}
public getElevatorPitch() {
return `Hello, my name is ${this.name} and I work in ${this.department}.`;
}
}
let howard = new Employee('Howard', 'Sales');
console.log(howard.getElevatorPitch()); // "Hello, my name is Howard and I work in Sales."
console.log(howard.name); // error
위의 예시에서 Person
클래스에 있는 protected name
프로퍼티는 Employee
클래스에서 상속되고, 이를 활용하여 getElevatorPitch
메소드가 name
을 사용하여 값을 반환합니다.
클래스 상속
클래스 간의 상속은 타입스크립트에서 일반적으로 사용되며, extends
키워드를 사용하여 부모 클래스를 확장합니다. 위의 예시에서 Employee
클래스는 Person
클래스를 상속합니다. 따라서 Employee
클래스는 Person
클래스에 포함된 protected name
프로퍼티를 사용할 수 있습니다.
protected
접근 제어자와 클래스 상속을 사용하여 다른 클래스와의 관계를 관리하면, 코드를 더 강력하고 유지보수하기 쉽게 만들 수 있습니다.