[java] 제네릭 타입의 타입 변수 간 상속 관계

제네릭 타입에서는 타입 변수 간에도 상속 관계가 성립하는데, 이는 일반적인 클래스와 비슷한 방식으로 동작합니다.

class Box<T> { /* ... */ }
class AppleBox<T> extends Box<T> { /* ... */ }

위의 예시에서 AppleBox 클래스는 Box 클래스를 확장하며, Box 클래스가 가진 제네릭 타입 T를 상속받습니다.

또한 부모 클래스에서 상속받은 제네릭 타입을 자식 클래스에서 동일하게 사용하거나, 새로운 타입 변수를 추가할 수도 있습니다.

class AppleBox<T, U> extends Box<U> { /* ... */ }

자식 클래스에서 새로운 타입 변수 U를 추가하여 확장하는 것도 가능합니다. 이처럼 제네릭 타입은 상속과 확장에서도 유연하게 사용될 수 있습니다.

이처럼, 제네릭 타입에서도 클래스 간의 상속 관계를 유지하면서 타입 변수를 공유하거나 확장할 수 있습니다. 이를 통해 다양한 상황에 유연하게 대처할 수 있는 제네릭 클래스를 설계할 수 있습니다.

참고 자료