자바스크립트 클래스의 상속과 다형성
자바스크립트는 객체 지향 프로그래밍을 지원하는 언어로, 클래스, 상속, 다형성과 같은 개념을 활용할 수 있습니다. 이번 포스트에서는 자바스크립트에서 클래스의 상속과 다형성을 구현하는 방법에 대해 알아보겠습니다.
클래스의 상속
자바스크립트에서 클래스의 상속은 extends
키워드를 사용하여 구현할 수 있습니다. 부모 클래스에서 정의된 속성과 메소드를 자식 클래스가 상속받아 사용할 수 있습니다.
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} is making a sound.`);
}
}
class Dog extends Animal {
constructor(name) {
super(name);
}
}
const dog = new Dog('Buddy');
dog.speak(); // 출력: "Buddy is making a sound."
위의 예제에서 Animal
클래스는 name
속성과 speak
메소드를 가지고 있습니다. Dog
클래스는 Animal
클래스를 상속받고, name
속성과 speak
메소드를 사용할 수 있습니다.
다형성
다형성은 한 가지 인터페이스나 추상 클래스가 다양한 방식으로 구현될 수 있는 능력을 의미합니다. 자바스크립트에서는 클래스의 다형성을 구현하기 위해 메소드 오버라이딩과 인터페이스를 활용할 수 있습니다.
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} is making a sound.`);
}
}
class Dog extends Animal {
constructor(name) {
super(name);
}
speak() {
console.log(`${this.name} is barking.`);
}
}
class Cat extends Animal {
constructor(name) {
super(name);
}
speak() {
console.log(`${this.name} is meowing.`);
}
}
const dog = new Dog('Buddy');
const cat = new Cat('Whiskers');
dog.speak(); // 출력: "Buddy is barking."
cat.speak(); // 출력: "Whiskers is meowing."
위의 예제에서 Animal
클래스에는 speak
메소드가 있습니다. Dog
클래스와 Cat
클래스는 각각 이 메소드를 오버라이딩하여 자신만의 동작을 구현하고 있습니다. 이렇게 되면 Animal
타입의 변수에 Dog
객체 또는 Cat
객체를 할당할 수 있으며, 각 객체의 speak
메소드를 호출하면 해당 객체의 동작이 실행됩니다.
자바스크립트에서는 클래스의 상속과 다형성을 활용하여 객체 지향 프로그래밍을 구현할 수 있습니다. 이를 통해 코드의 재사용성과 가독성을 높이고, 유연한 프로그램을 개발할 수 있습니다.