본문 바로가기
Javascript

OOP(2)

by Doromi 2023. 11. 5.
728x90
반응형
이번에는 동물과 동물의 서브클래스로 강아지와 고양이를 모델링하는 예제입니다.
// 동물 클래스 정의
class Animal {
  constructor(name, species) {
    this.name = name;
    this.species = species;
  }

  speak() {
    console.log(`${this.name}는 소리를 내지 않습니다.`);
  }
}

// 강아지 클래스 (동물의 서브클래스)
class Dog extends Animal {
  speak() {
    console.log(`${this.name}는 멍멍 짖습니다.`);
  }
}

// 고양이 클래스 (동물의 서브클래스)
class Cat extends Animal {
  speak() {
    console.log(`${this.name}는 야옹 소리를 내냅니다.`);
  }
}

// 동물 객체 생성
const genericAnimal = new Animal('동물', '동물종');

// 강아지 객체 생성
const myDog = new Dog('멍멍이', '강아지');

// 고양이 객체 생성
const myCat = new Cat('야옹이', '고양이');

// 동물들이 소리를 내도록 호출
genericAnimal.speak();
myDog.speak();
myCat.speak();
 Animal 클래스를 정의하고, 이 클래스를 상속하는 Dog와 Cat 클래스를 생성합니다. 각 클래스에는 speak 메서드가 정의되어 있습니다. speak 메서드는 동물 객체의 종류에 따라 다른 소리를 출력합니다.

이를 통해 다형성(polymorphism)과 상속(inheritance)을 사용하여 동물 객체와 서브클래스의 객체를 만들고, 메서드를 호출하는 객체 지향 프로그래밍의 핵심 개념을 보여주고 있습니다.
728x90
반응형

'Javascript' 카테고리의 다른 글

Async Functions in Javascript  (0) 2024.04.01
OOP(5)  (0) 2023.11.07
OOP(4)  (0) 2023.11.06
OOP(3)  (0) 2023.11.05
OOP  (0) 2023.11.05