상속2 Effective Java: item 18. 상속보다는 컴포지션을 사용하라 이전에 상속과 컴포지션에 대해 공부하면서 참고했던 Effective Java의 아이템 하나를 별도로 정리해보고자 한다.Effective Java의 아이템 18: 상속보다는 컴포지션을 사용하라이펙티브 자바는 상속의 문제를 피하면서 코드 재사용성을 높이기 위한 방법으로 Wrapper 클래스와 포워딩(forwarding) 기법을 제안한다. 이를 통해 기존 클래스의 기능을 확장하면서도 상속의 단점을 피할 수 있다.Wrapper 클래스란?Wrapper 클래스는 기존 클래스의 객체를 포함(컴포지션)한 후, 해당 객체의 메서드를 포워딩하는 방식으로 동작한다. 이렇게 하면 구체 클래스의 내부 구현에 의존하지 않고도, 그 기능을 안전하게 확장할 수 있다. 즉, 상속에서 발생할 수 있는 취약한 결합성을 줄이며, 더 유연한.. Java/일반 2024. 9. 26. Java의 상속(Inheritance)과 컴포지션(Composition) 상속(Inheritance)상속은 기존에 존재하는 클래스를 재사용하여 새로운 클래스를 작성하는 방법이다. 상위 클래스(부모)의 필드와 메서드를 하위 클래스(자식)가 물려받아 사용할 수 있다.자식 클래스의 이름 뒤에 'extends' 키워드를 사용하여 부모 클래스를 명시한다.중복되는 코드를 부모 클래스에서 관리할 수 있어 코드 재사용성을 높일 수 있다.자식 클래스는 부모 클래스의 메서드를 재정의(Override)하여 다형성을 구현할 수 있다.Java에서는 단일 상속만 허용하며, 자식 클래스의 자식 클래스를 계속 만들면서 계층이 깊어질 수 있다.// 부모 클래스class Animal { void sound() { System.out.println("동물이 소리를 냅니다."); }}//.. Java/일반 2024. 9. 26. 이전 1 다음