- 상속과 인터페이스와의 관계
interface Person {
name: string;
say(message: string): void;
}
interface Programmer {
writeCoder(requirement: string): string;
}
class KoreanProgrammer implements Person, Programmer {
constructor(public name: string) {
}
say(message: string): void {
console.log(message);
}
wrtieCode(requirement: string):string {
console.log(requirement);
return requirement + '...';
}
loveKimchi() {
console.log('love~kimchi~');
}
}
cnost jay = new KoreanProgrammer('jay');
- abstract 키워드를 통해 클래스를 정의하는 방법
abstract는 이 클래스가 아직 완성되지 않은 클래스라는 것을 말한다.
이 클래스를 꼭 인스턴스를 바로 만들수는 없지만 이 클래스를 통해서 다른 상속 받은 클래스를 통해서 다른 상속을 받은 클래스를 통해서 인스턴스를 만들 수 있다.
interface Person {
name: string;
say(message: string): void;
}
abstract class Korean implements Person {
public abstract jumin: number;
constructor(public name: string) {
}
say(msg: string) {
console.log(msg);
}
abstract loveKimchi(): void;
}
class KoreanProgrammer extends Korean implements Programmer {
constructor(public name: string, public jumin: number) {
super(name);
}
say(message: string): void {
console.log(message);
}
wrtieCode(requirement: string):string {
console.log(requirement);
return requirement + '...';
}
loveKimchi(): void {
throw new Error("Method not implemeted.");
}
}
const jay = new KoreanProgrammer('jay', 2222);
const jay2 = new Korean('jay');