1. 클래스 상속 (extends)
상속은 한 클래스가 다른 클래스의 속성과 메서드를 물려받는 것을 의미합니다. 이를 통해 기존 코드를 재사용하고 확장할 수 있습니다.
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} makes a noise.`);
}
}
class Dog extends Animal {
constructor(name, breed) {
super(name); // 부모 클래스의 생성자를 호출
this.breed = breed;
}
speak() {
console.log(`${this.name} barks.`);
}
}
let dog = new Dog('Rex', 'Labrador');
dog.speak(); // Rex barks.
- extends 키워드: Dog 클래스가 Animal 클래스를 상속받도록 합니다.
- super() 함수: 자식 클래스에서 부모 클래스의 생성자를 호출할 때 사용됩니다. 이를 통해 부모 클래스의 속성을 초기화할 수 있습니다.
2. 오버라이딩 (Overriding)
오버라이딩은 자식 클래스가 부모 클래스의 메서드를 재정의하여 사용하는 것을 의미합니다. 이를 통해 자식 클래스에 맞게 메서드의 동작을 변경할 수 있습니다.
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} makes a noise.`);
}
}
class Cat extends Animal {
speak() {
console.log(`${this.name} meows.`);
}
}
let cat = new Cat('Whiskers');
cat.speak(); // Whiskers meows.
- 오버라이딩된 메서드: Cat 클래스에서 speak 메서드를 재정의하여 고양이에 맞는 동작을 구현합니다.
요약
- 상속 (extends): 클래스가 다른 클래스의 속성과 메서드를 상속받아 재사용.
- super() 함수: 부모 클래스의 생성자와 메서드를 호출하여 재사용.
- 오버라이딩 (Overriding): 자식 클래스에서 부모 클래스의 메서드를 재정의하여 사용.
'nest.js' 카테고리의 다른 글
MVC,DOC/IoC (2024.05.28) (0) | 2024.05.28 |
---|---|
node.js(상속, 전략패턴)(2024.05.20) (0) | 2024.05.20 |
스크랩핑, 크롤링, 브라우저api(2024.05.12) (0) | 2024.05.14 |
데이터베이스(SQL,NoSQL,ORM,ODM)2024.05.12 (0) | 2024.05.14 |
동기(sync),비동기(async), 변수,함수 중복선언(2024.05.12) (0) | 2024.05.12 |