2021/1/14 ダンスパーティー前夜祭💃🏻

9rganizedChaos·2021년 1월 14일
0

만들기 스프린트에 울렁증이 있는 편...💺 💊 🤦🏻‍♂️
Subclass Dance Party에서 응용할 객체지향의 특징 중 하나인 Polymorphism을 짧게나마 좀 더 자세히 살펴보며 댄스파티 전야제를 치르기로 하였다.

ポリモーフィズムとは何でしょうか。

What is polymorphism?
When constructing applications, it is often the case that you will need to construct objects that share common methods or traits. Dancers, for example, all display individual unique traits, however they also share the ability to dance, to stop dancing, and to line up. By creating dancers that are subclasses of a Dancer class, you can exhibit individuality while allowing your dancers to inherit useful methods from their superclass. This ability of the Dancer class to manifest in various subclass forms is polymorphism.

다형성이란 무엇인가?
어플리케이션(응용프로그램)을 구성 할 때, 공통의 방법이나 특성을 공유하는 오브젝트(객체)를 구성해야하는 경우가 종종 있습니다. 댄서들을 예로 들어봅시다. 댄서들 개개인은 모두 유니크한 특성을 보여줍니다. 하지만, 그들은 춤을 추고, 춤을 멈추고, 또 줄을 서는 능력을 공유합니다. 댄서(Dancer)라는 클래스의 서브클래스인 댄서들(dancers)을 만들어, 당신은 당신의 댄서들이 그들의 슈퍼클래스로부터 유용한 메소드를 상속받도록 하는 동시에, (개별 댄서들의) 특성을 드러낼 수 있습니다. 다양한 서브클래스의 형태를 드러내는 댄서 클래스의 능력이 다형성입니다.

ポリモーフィズムが使用される実際の事例はどのようなものでしょうか?

위 영문 설명에서 살펴보았듯이 우리는 댄서라는 슈퍼 클래스를 상속받은 다양한 장르의 서브댄서 클래스를 만들 수 있습니다. 아래와 같이 말입니다!

class Dancer  {
  constructor(age, height, gender){
    this.age = age;
    this.height = height;
    this.gender = gender;
  }
  dance() {
    return "Move your body! "
  }
}

class BalletDancer extends Dancer {
  constructor(age, height, gender, school){
    super(age, height, gender);
    this.school = school;
  }
  danceBallet() {
    return super.dance() + 'un, deux, trois!'
  }
}

class PoppinDancer extends Dancer {
  constructor(age, height, gender, crew){
    super(age, height, gender);
    this.crew = crew;
  }
  dancePoppin() {
    return super.dance() + 'up, down, up, down!'
  }
}

class VoguingDancer extends Dancer {
  constructor(age, height, gender, house){
    super(age, height, gender);
    this.house = house;
  }
  danceVoguing() {
    return super.dance() + 'nails, hair, hips, heels!'
  }
} 

결국 다형성이란 슈퍼클래스로 부터 상속을 받은 서브클래스를 커스터마이징할 수 있는 객체지향프로그래밍의 특성으로 이해할 수 있을 것 같다!

전야제 끝. 다들 집가세오...🏠

profile
부정확한 정보나 잘못된 정보는 댓글로 알려주시면 빠르게 수정토록 하겠습니다, 감사합니다!

0개의 댓글