[JAVA] GENERIC - 타입 제한

펭귄안녕·2024년 10월 18일

JAVA

목록 보기
2/9
post-thumbnail

타입 제한

자료형이 정해지지 않았기 때문에 제네릭이 적용된 클래스에서는
메서드 구현이 아주 제한적이다. => 제네릭 클래스에서 원하는 기능 못 만듦
이러한 문제를 해결하기 위해 타입인자(T:정해지지 않은 자료형)를 제한하는 문법을 사용

public class Phone {
    public void call(){
        System.out.println("전화를 겁니다.");
    }

}

class MobilePhone extends Phone{
    public void sendMsg(){
        System.out.println("메시지를 전송합니다.");
    }
}

class SmartPhone extends MobilePhone{
    public void playApp(){
        System.out.println("앱을 실행합니다.");
    }
}

< T extends Phone> : T를 Phone 클래스나 Phone 클래스를 상속한 클래스만 허용하도록 타입인자 제한

public class PhoneBox<T extends Phone> {
    private T data;

    public void phoneTest(T data){
        this.data=data;
        data.call(); // phone 클래스를 받아왔기 때문에 가능함
//        data.sendMsg();


    }

}

0개의 댓글