JavaScript 객체 지향 프로그래밍

class 상속

수업소개

JavaScript에서 클래스를 상속해서 서브 클래스를 만드는 방법을 소개합니다. 

 

 

 

강의

 

 

 

코드

class.js (변경사항

class Person{
    constructor(name, first, second){
        this.name = name;
        this.first = first;
        this.second = second;
    }
    sum(){
        return this.first+this.second;
    }
}
class PersonPlus extends Person{
    avg(){
        return (this.first+this.second)/2;
    }
}

var kim = new PersonPlus('kim', 10, 20);
console.log("kim.sum()", kim.sum());
console.log("kim.avg()", kim.avg());

 

댓글

댓글 본문
작성자
비밀번호
  1. 1. 상속이 뭘까요?
    class로 만든 하나의 객체 생성자(부모)에 기능 등을 추가하려고 할 때, 자식 생성자를 만들어 들어올 값을 부모로 부터 상속받아 사용하는 것입니다.

    2. 상속이 없으면 뭐가 불편한가요?
    다른사란이 만든 라이브러리 등을 유지보수를위해 직접 수정시 오류가 날 수 있습니다. 이를방지하기위해 복제해서 사용하게되면 중복이 많아져 유지보수에 좋지않고 메모리관리시 효율이 떨어집니다.

    3. 상속받는 자식 클래스는 어떻게 구현? (extends 부모클래스명 - 부모로부터 받아와서 확장한다.)
    자식클래스는
    class 자식클래스명 extends 부모클래스명 {
    추가할함수명(){}
    }
  2. 감사합니다.
  3. 감사합니다.
  4. 상속은 말 그대로 클래스의 기능을 이어받는 것.(기능을 공유함)
    따라서 상속이 없으면 클래스의 기능을 변경하려면 일일히 클래스 안에 코드를
    변경해야 하는 번거로움이 있는데
    이렇게 하게되면 업데이트가 되거나 할 시에 덮어쓰여질 수 있음.
    또한 코드의 중복이 많아져 코드가 길어진다.
    자식 클래스는 상속해주는 클래스와 중복된 코드는 제거시키고 새로 추가한 코드만 남겨놓음
  5. Young Kwang Cho
    extends 키워드를 이용해서 Person 클래스를 확장한 새로운 클래스(서브 클래스)를 만들 수 있다.
    이 서브 클래스는 당연하게 확장한 클래스(Person)의 constructor, method 등을 포함하는 클래스이다.
  6. 변찬우
    질문1. 기 작성된 코드를 수정하는 등의 유지보수를 하는 과정에서 이전 코드를 직접 수정/삭제하는 경우 다양한 후속 이슈를 발생시킬 수 있다. 이를 방지하기 위해 개별 클래스들을 계속해서 생성하는 경우 동일한 기능을 수행하는 코드들의 중복이 증가하여 코드의 효율성?이 낮아질 수 있다.

    질문2. 상속받을 예정인 클래스에 없는 새로운 변수 또는 함수를 새로운 이름의 클래스에 작성하고 해당 클래스의 이름 뒤에 'extends 상속받을클래스이름'을 추가한다. 그런데 만약? 상속받는 클래스와 동일한 변수 또는 함수가 있으면?? ^^ 아마 뒤 수업에 있지 않을까? 한다..ㅎ
  7. 어쩌다보이
    상속은 새로운 클래스로 메소드를 추가할 때 중복되는 코드를 extends 즉 확장한다는 개념으로 바꿔주네요. 카드겜에서 돈을 걸 때 앞 코드 받고 추가로 딜 하는 느낌..
  8. 기존의 클래스를 확장할때 상속을 사용해서 활용하면 편할것 같습니다!
  9. hyuna lee
    클래스간에 extends 라는 키워드로 다른 클래스의 메소드를 상속받고 + 추가된 기능이 가능한 거라고 이해했는데 맞나 모르겠네요.
    Person과 PersonPlus는 거의 비슷한데 avg가 추가된것만 다르니까 반복된는 부분을 PersonPlus가 상속받고 추가되는 부분만 써주면 중복이 안되서 좋겠네요.
    근데... 그냥 강의듣고 대충 알것같다 하고 넘어갔었는데, 선생님이 말로 표현해보라고 해서 표현하려고 하니까 머리속으로 생각을 하게되네요. 생각을 하면서 정리도 되고 복습도 되고..참 좋은 방법인것 같아요.
graphittie 자세히 보기