코드팩토리 JS

17. super , override

박성하하 2025. 12. 26. 21:01
728x90
반응형
/**
 * Super and Override
 */
class IdolModel{
    name;
    year;

    constructor(name, year){
        this.name = name;
        this.year = year;
    }

    sayHello(){
        return `안녕하세요 ${this.name}입니다.`;
    }
}

class FemaleIdolModel extends IdolModel{
    // 노래 / 춤
    part;

    constructor(name, year, part){
        super(name, year);
        this.part = part;
    }

    sayHello(){
        // return `안녕하세요 ${this.name}입니다. ${this.part}를 맡고있습니다.`;
        return `${super.sayHello()} ${this.part}를 맡고있습니다.`;
    }
}

const yuJin = new FemaleIdolModel('안유진', 2003, '보컬');
console.log(yuJin);                             // FemaleIdolModel {name: '안유진', year: 2003, part: '보컬'}

const wonYoung = new IdolModel('장원영', 2002);
console.log(wonYoung);                          // IdolModel {name: '장원영', year: 2002}
console.log(wonYoung.sayHello());               // 안녕하세요 장원영입니다.
console.log(yuJin.sayHello());                  // 안녕하세요 안유진입니다. 보컬를 맡고있습니다.
728x90
반응형

'코드팩토리 JS' 카테고리의 다른 글

19. About Object  (0) 2025.12.26
18. Class Test  (1) 2025.12.26
16. inheritance  (0) 2025.12.26
15. static keyword  (0) 2025.12.26
14. Getter and Setter  (0) 2025.12.26