JAVA의 상속과 참조의 차이점에 대해 알려줘

KIM YONG GU·2023년 9월 5일
0

JAVA Knowledge

목록 보기
12/40
post-custom-banner

자바(Java)에서의 상속과 참조(Reference)는 객체지향 프로그래밍(OOP) 개념에서 중요한 부분을 차지하며, 다음은 두 개념 간의 주요 차이점입니다:

상속 (Inheritance)

상속은 객체 지향 프로그래밍에서 새로운 클래스를 기존 클래스를 기반으로 생성하는 메커니즘입니다.
부모 클래스(슈퍼 클래스 또는 기본 클래스)와 자식 클래스(서브 클래스 또는 파생 클래스) 사이의 관계를 나타냅니다.
자식 클래스는 부모 클래스의 특성과 동작을 상속받아 사용할 수 있습니다.
자식 클래스는 부모 클래스를 확장(extend)하고, 추가적인 특성과 메서드를 가질 수 있습니다.
상속은 코드 재사용을 촉진하고, 클래스 간의 계층 구조를 형성하여 객체를 논리적으로 모델링할 수 있게 합니다.

참조 (Reference)

참조는 변수나 매개변수로 객체를 가리킬 때 사용되는 개념입니다.
자바에서 객체는 힙(heap) 메모리에 생성되고, 객체를 조작할 때에는 해당 객체를 가리키는 참조(reference)를 사용합니다.
참조 변수는 객체의 주소를 저장하며, 객체가 힙 메모리에서 생성될 때, 참조 변수에는 그 객체의 주소가 할당됩니다.
여러 참조 변수가 하나의 객체를 가리킬 수 있고, 한 객체는 여러 참조 변수에 의해 동시에 참조될 수 있습니다.

차이점 요약

상속은 클래스 간의 계층 구조와 코드 재사용을 위한 메커니즘입니다.
참조는 객체를 변수로 가리키는데 사용되며, 여러 참조 변수가 하나의 객체를 가리킬 수 있습니다.
상속은 클래스 간의 관계를 정의하고, 코드의 확장성과 유지보수성을 향상시킵니다.
참조는 객체의 메서드를 호출하거나 객체의 속성에 접근하는 데 사용되며, 객체를 다양한 부분에서 사용하게 합니다.

코드의 안정성을 측정할 때 상속과 참조 모두 장단점을 가집니다. 어떤 것이 더 나은 선택인지는 상황과 사용 사례에 따라 다를 수 있습니다. 여기에 각각의 장단점과 상황에 맞는 선택 사례를 살펴보겠습니다.

상속의 장점

코드 재사용: 상속을 통해 부모 클래스의 코드와 기능을 자식 클래스에서 재사용할 수 있습니다. 이는 개발 시간을 단축하고 코드 중복을 줄일 수 있게 합니다.

폴리모피즘(Polymorphism): 다형성을 구현하기 쉽습니다. 자식 클래스는 부모 클래스의 객체로 취급될 수 있으므로, 한 인터페이스나 부모 클래스를 통해 여러 종류의 객체를 관리하기 용이합니다.

상속의 단점

커플링(Coupling): 강력한 커플링을 유발할 수 있습니다. 자식 클래스가 부모 클래스에 의존하기 때문에 부모 클래스의 변경이 자식 클래스에 영향을 미칠 수 있습니다.

계층 구조 설계 어려움: 깊은 상속 계층을 설계하면 클래스 간의 관계를 이해하고 유지보수하기 어려워질 수 있습니다.

참조의 장점

낮은 커플링: 참조를 사용할 때 클래스 간의 결합도가 낮아집니다. 클래스 간의 의존성이 줄어들기 때문에 변경이 한 클래스에 미치는 영향이 다른 클래스에 덜합니다.

유연한 디자인: 참조를 사용하면 런타임에 객체를 교체하거나 다른 객체로 쉽게 전환할 수 있어, 유연하고 확장 가능한 디자인을 구축하는 데 도움이 됩니다.

참조의 단점

코드 중복: 비슷한 기능을 가진 여러 객체를 생성하고 유지하는 데 더 많은 코드가 필요할 수 있습니다.

디자인 복잡성: 객체 간의 참조를 관리하는 것은 일부 디자인 상황에서 복잡성을 증가시킬 수 있습니다.

결론

코드의 안정성을 고려할 때, 참조를 사용하는 것이 상속보다 더 나은 경우가 많습니다. 상속을 사용할 때는 신중하게 설계하고 커플링을 최소화하는 노력이 필요합니다. 또한 상속과 참조를 조합하여 필요한 상황에 맞게 사용하는 것이 가장 좋은 결과를 얻을 수 있는 방법일 수 있습니다. 요구 사항과 디자인 목표에 따라 최선의 선택을 고려해야 합니다.

profile
Engineer, Look Beyond the Code.
post-custom-banner

0개의 댓글