Typescript - Classes 객체지향 프로그래밍
타입스크립트가 많은 양의 중복 코드를 줄여준다.
Classes
추상(abstract) 클래스
추상 클래스는 오직 다른 클래스가 상속받을 수 있는 클래스이다.
하지만 직접 새로운 인스턴스를 만들 수는 없다.
abstract class User{
constructor(
private firstname:string,
private lastname:string,
public nickname:string
){
abstract getNickname():void
}
}
class Player extends User{
// 추상 메서드는 추상 클래스를 상속받는 클래스들이 반드시 구현(implement)해야하는 메서드이다.
getNickname(){
console.log(this.nickname)
}
}
public: 모든 클래스에서 접근 가능
private: 해당 클래스 내에서만 접근 가능 (자식 클래스에서도 접근 불가)
protected: 해당 클래스와 자식 클래스에서 접근 가능
//Class에 대해서 배워보자!
//abstract Class 추상 클래스
//abstract Class : 다른 클래스가 상송받을 수 있는 class
//abstract 를 사용하면 상속받을 class에 'extends' 를 꼭 추가해주기!
abstract class User{
constructor(
private firstName:string,
private lastName:string,
public nickname:string
){}
}
class Player extends User{
}
//new User는 사용할 수 없다 -> 상속만 가능
const seung = new Player("kim","seung","승현2");
//private한 것들은 대입이 되지 않는다. public 만 가능!
seung.firstName = "lee";
//접근 가능한 위치
//private - 선언한 클래스 안에서만!
//protected - 선언한 클래스 안, 상속받은 클래스 안
//public - 다 가능
abstract class User{
constructor(
protected firstName:string,
protected lastName:string,
protected nickname:string
){}
abstract getNickName():void
getFullName(){
return `${this.firstName} ${this.lastName}`
}
}
class Player extends User{
getNickName(){
console.log(this.nickname)
}
}
const seung = new Player("kim","seung","승현2");
seung.getFullName();