[java] 상속을 통한 다른 클래스의 수정 최소화

자바에서 상속은 코드 재사용과 유지보수를 용이하게 하는 강력한 도구입니다. 부모 클래스의 기능을 자식 클래스가 물려받아 확장하고 수정할 수 있기 때문에 중복된 코드 작성을 최소화하고 코드를 더 유연하게 만들 수 있습니다.

상속의 장점

  1. 코드 재사용: 부모 클래스의 기능을 자식 클래스가 상속받아 사용할 수 있으므로 중복 코드를 줄일 수 있습니다.

  2. 유지보수 용이: 공통 기능이 부모 클래스에 있기 때문에 해당 기능을 수정해야 할 때 자식 클래스마다 일일히 수정할 필요가 없습니다.

  3. 확장성: 새로운 기능이 필요한 경우 부모 클래스의 메서드를 오버라이딩하여 새로운 동작을 추가할 수 있습니다.

주의사항

  1. 의존성 문제: 상속은 부모 클래스와 자식 클래스를 강하게 결합시킬 수 있으므로 클래스 간의 의존성 문제를 유의해야 합니다. 이로 인해 변경이나 버그 수정이 어려울 수 있습니다.

  2. 가시성 문제: 자식 클래스가 부모 클래스의 모든 기능을 물려받기 때문에 가시성을 신중히 설정해야 합니다. 불필요한 기능을 노출시킬 수 있으며, 이는 보안상 문제가 될 수 있습니다.

예시

다음은 상속을 통해 부모 클래스의 메서드를 오버라이딩하는 간단한 예시입니다.

class Shape {
    public void draw() {
        System.out.println("Drawing a shape");
    }
}

class Circle extends Shape {
    @Override
    public void draw() {
        System.out.println("Drawing a circle");
    }
}

위의 예시에서 Circle 클래스는 Shape 클래스를 상속받아 draw 메서드를 오버라이딩하여 원이라는 도형을 그리도록 수정하였습니다.

상속을 사용하여 기능을 확장하고 수정하는 것은 코드의 재사용성과 유지보수성을 높이는데 도움이 됩니다. 그러나 상속을 남용하면 코드를 복잡하고 유연성을 잃을 수 있으므로 적절한 사용이 필요합니다.

참고 자료