[javascript] 객체 상속과 다형성의 개념과 이점

JavaScript는 프로토타입 기반의 언어로, 객체 상속과 다형성을 활용하여 유연하고 강력한 코드를 작성할 수 있습니다. 이번 글에서는 JavaScript에서 객체 상속과 다형성의 개념과 이점에 대해 살펴보겠습니다.

객체 상속

객체 상속은 한 객체가 다른 객체의 속성과 메서드를 상속받아 사용하는 것을 말합니다. JavaScript에서는 prototype을 활용하여 객체 간에 상속을 구현할 수 있습니다.

예를 들어, 다음과 같이 Person 객체를 정의하고, Employee 객체가 Person을 상속받는 예제를 살펴보겠습니다.

function Person(name) {
  this.name = name;
}

Person.prototype.sayHello = function() {
  console.log('Hello, my name is ' + this.name);
}

function Employee(name, title) {
  Person.call(this, name);
  this.title = title;
}
Employee.prototype = Object.create(Person.prototype);

var emp = new Employee('John', 'Developer');
emp.sayHello(); // 출력: 'Hello, my name is John'

위 예제에서 Employee 객체는 Person 객체를 상속받아 sayHello 메서드를 사용할 수 있습니다.

다형성

다형성은 객체지향 프로그래밍의 개념으로, 같은 이름의 메서드가 다양한 객체에서 다양하게 동작할 수 있는 특성을 말합니다. JavaScript에서는 다형성을 동적으로 구현할 수 있습니다.

예를 들어, 다음과 같이 displayInfo 함수에서 다형성을 활용하는 예제를 살펴보겠습니다.

function displayInfo(obj) {
  if (obj instanceof Person) {
    console.log('Person: ' + obj.name);
  } else if (obj instanceof Employee) {
    console.log('Employee: ' + obj.name + ', ' + obj.title);
  }
}

var person = new Person('Alice');
var employee = new Employee('Bob', 'Manager');

displayInfo(person); // 출력: 'Person: Alice'
displayInfo(employee); // 출력: 'Employee: Bob, Manager'

위 예제에서 displayInfo 함수는 PersonEmployee 객체를 다형적으로 처리하여 각 객체에 맞게 동작합니다.

상속과 다형성의 이점

객체 상속과 다형성을 활용하면 코드의 재사용성을 높일 수 있고, 유지보수가 쉬운 유연한 코드를 작성할 수 있습니다. 또한, 추상화를 통해 객체 간의 관계를 명확하게 표현할 수 있어 코드의 가독성을 높일 수 있습니다.

JavaScript에서 객체 상속과 다형성을 적절히 활용하면 보다 강력한 객체지향 프로그래밍을 구현할 수 있습니다.

위에서 살펴본 예제를 통해 JavaScript에서 객체 상속과 다형성을 쉽게 구현하는 방법과 이점에 대해 알아보았습니다.

참고자료:

JavaScript에서 객체 상속과 다형성을 적절히 활용하면 보다 강력한 객체지향 프로그래밍을 구현할 수 있습니다.

위에서 살펴본 예제를 통해 JavaScript에서 객체 상속과 다형성을 쉽게 구현하는 방법과 이점에 대해 알아보았습니다.

참고자료: