클래스(class) - 확장(extends)

김가오리·2022년 9월 29일
0

JAVASCRIPT

목록 보기
25/35
post-thumbnail
class Tiger{
    constructor(color){
        this.color = color;
    }
    eat(){
        console.log("냐미");
    }
    sleep(){
        console.log("쿨..")
    }
}

class Dog{
    constructor(color){
        this.color = color;
    }
    eat(){
        console.log("냐미");
    }
    sleep(){
        console.log("쿨..");
    }
    play(){
        console.log("놀자왈왈");
    }
}

중복되는 코드가 너무 많고, 지저분함

--> 확장(extends)개념

확장(extends)

클래스를 다른 클래스의 자식으로 만들기 위해 class선언 또는 class식에 사용.

class Animal{
    constructor(color){
        this.color = color;
    }
    eat(){
        console.log("냐미");
    }
    sleep(){
        console.log("쿨....")
    }
}
class Tiger extends Animal{
}

class Tiger는 클래스 Animal을 상속받음.

class Doggy extends Animal{
    constructor(color, ownerName){ // 원래있던 color도 받아와야함
        super(color);               //상속하고 있는 Animal 을 가르킴. 
        this.ownerName = ownerName;
    }
    get play(){
        console.log("놀자");
    }
    eat(){
    	// 오버라이딩 - 자식클라스에서 부모클라스에 있는 함수를 고침
        super.eat();
        //부모클라스의 함수 호출. 
        console.log("쮸룹");
    }
}

class Doggy 또한,클래스 Animal을 상속받음.

const puppy = new Doggy('누렁이','정우');
puppy.play;
puppy.eat();

console.log(puppy)

접근자 프로퍼티를 사용했기 때문에 () 없이 호출

const tiger = new Tiger('노랑까망'); //Tiger의 객체를 만듦. 
const doggy = new Tiger('노랑까망'); //Tiger의 객체를 만듦. 
console.log(tiger);

doggy.eat();
doggy.sleep();


참고 :
extends

profile
가보자고

0개의 댓글