본문 바로가기
Programming/객체 지향 프로그래밍(OOP)

OOP 활용: extends 키워드(상속)

by vita12321 2023. 9. 27.
728x90
반응형

이번 글에서는 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 핵심 기능 하나인 'extends 키워드(상속)' 대해 깊게 알아보겠습니다. 이전에는 상속의 기본적인 개념을 살펴봤지만, 이번 글에서는 extends 키워드를 활용한 심화된 내용과 실제 사례를 통해 상속을 더욱 깊게 파고들겠습니다.


1. extends 키워드란 무엇인가?

 

Java 언어에서 클래스 간의 상속 관계를 선언하는 사용되는 키워드가 바로 'extends'입니다. 클래스가 다른 클래스의 속성과 메소드를 받아오는 것을 말합니다. 자식 클래스(하위 클래스) 부모 클래스(상위 클래스)로부터 속성과 메소드를 물려받아 사용할 있습니다.


2. extends 키워드를 사용하는가?

 

extends 키워드를 사용하면 코드 재사용성을 크게 높일 있습니다. 이미 작성된 부모 클래스의 멤버 변수와 메소드를 그대로 활용할 있으므로, 동일한 코드를 반복해서 작성할 필요가 없습니다.

 

또한, 기존 코드에 영향을 주지 않으면서 새로운 기능을 추가하거나 확장하는 것도 가능합니다. 이런 때문에 객체 지향 프로그래밍에서 extends 같은 상속 개념은 중요한 역할을 합니다.


3. extends 키워드 구현하기

 

Java 언어 기준으로 Vehicle라는 부모 클래스와 Car라는 자식 클래스가 있다고 가정하겠습니다.

 

예시 코드:

public class Vehicle {

    protected String brand = "Ford";

    public void honk() {

        System.out.println("Beep, Beep!");

    }

}

 

public class Car extends Vehicle {

    private String modelName = "Mustang";

    public static void main(String[] args) {

        Car myCar = new Car();

        myCar.honk();

        System.out.println(myCar.brand + " " + myCar.modelName);

    }

}

 

예제에서`Car`클래스(자식)는 `Vehicle`클래스(부모)로부터 brand 속성과 honk() 메소드를 상속받았음을 확인할 있습니다. 이렇게 상속을 통해 기존에 작성된 코드를 재사용하면서 새로운 클래스를 효율적으로 정의할 있습니다.


4. 주의사항

 

그러나 extends 키워드와 함께 상속 구조를 만들 주의해야 점이 가지 있습니다:

 

  • 너무 복잡한 계층 구조: 너무 많은 계층을 가진 복잡한 구조는 유지보수가 어려울 수 있으므로 가능한 한 단순하게 유지하는 것이 좋습니다.

  • 부모 클래스의 변경: 부모 클래스에서 변경이 발생하면 그 영향이 자식 클래스로 전달됩니다. 따라서 부모 클래스를 수정할 때는 주의가 필요합니다.

5. extends 키워드 활용 사례

 

예를 들어, 우리가 동물들의 행동과 속성을 모델링하는 프로그램을 만든다고 가정해 봅시다. 'Animal'이라는 기본 클래스를 만들고, 여기에 공통적인 속성과 메소드(: 나이, 이름, 먹는 행동 ) 정의합니다.

 

그런 다음 'Dog', 'Cat', 'Bird' 등의 하위 클래스를 생성하여 Animal에서 공통적으로 상속받은 속성 메소드 외에도 동물만의 고유한 속성과 메소드(: 짖는 행동, 나는 행동 ) 추가합니다.


6. 결론

 

객체 지향 프로그래밍에서 'extends' 키워드와 상속은 중요한 개념입니다. 개념을 이해하면 코드 재사용, 확장성 제공, 유지 보수 용이와 같은 여러 가지 장점을 얻을 있습니다.

 

하지만 이러한 기능들을 사용할 때에는 주의사항도 존재합니다. 부모와 자식간에 너무 많은 종속성(dependency) 생기지 않도록 주의하며, 필요하지 않거나 복잡도만 증가시킬 경우엔 구성(composition) 다른 방법을 선택하는 것이 좋습니다.

 

마지막으로, extends 키워드와 상속은 매우 강력한 도구입니다만 제대로 사용하지 않으면 예상치 못한 결과를 초래할 있습니다. 따라서 이러한 개념들을 사용할 때는 항상 주의 깊게 접근해야 합니다.

728x90
반응형

 

728x90
반응형