-
매개변수의 자료형 제한JAVA/Generic 2020. 10. 18. 20:52
개념
매개변수의 자료형 제한 예제1
프로그램 실행결과
소스 코드
더보기interface SimpleInterface { public void ShowYourName(); // 추상 메소드 } class UpperClass { public void ShowYourAncestor(){System.out.println("UpperClass");} } class AAA extends UpperClass implements SimpleInterface { @Override public void ShowYourName() // 메소드 정의 { System.out.println("AAA"); } } class BBB extends UpperClass implements SimpleInterface { @Override public void ShowYourName() // 메소드 정의 { System.out.println("BBB"); } } class BoundedTypeParam { public static<T> void ShowInstanceName(T param){ ((SimpleInterface)param).ShowYourName(); } public static<T> void ShowInstanceAncestor(T param){ ((UpperClass)param).ShowYourAncestor(); } } public class Exam1 { public static void main(String[] args) { AAA aaa = new AAA(); BBB bbb = new BBB(); BoundedTypeParam.ShowInstanceName(aaa); BoundedTypeParam.ShowInstanceAncestor(bbb); BoundedTypeParam.ShowInstanceName(bbb); BoundedTypeParam.ShowInstanceAncestor(aaa); } }
매개변수의 자료형 제한 예제2
프로그램 실행결과
소스 코드
더보기interface SimpleInterface { public void ShowYourName(); // 추상 메소드 } class UpperClass { public void ShowYourAncestor(){System.out.println("UpperClass");} } class AAA extends UpperClass implements SimpleInterface { @Override public void ShowYourName() // 메소드 정의 { System.out.println("AAA"); } } class BBB extends UpperClass implements SimpleInterface { @Override public void ShowYourName() // 메소드 정의 { System.out.println("BBB"); } } class BoundedTypeParam { public static<T extends SimpleInterface> void ShowInstanceName(T param){ param.ShowYourName(); } public static<T extends UpperClass> void ShowInstanceAncestor(T param){ param.ShowYourAncestor(); } } public class Exam1 { public static void main(String[] args) { AAA aaa = new AAA(); BBB bbb = new BBB(); BoundedTypeParam.ShowInstanceName(aaa); BoundedTypeParam.ShowInstanceAncestor(aaa); BoundedTypeParam.ShowInstanceName(bbb); BoundedTypeParam.ShowInstanceAncestor(bbb); } }
'JAVA > Generic' 카테고리의 다른 글
제네릭 변수의 참조와 상속의 관계 (0) 2020.10.18 제네릭 메소드와 배열 (0) 2020.10.18 제네릭 메소드 (0) 2020.10.18 제네릭 클래스의 이해와 설계 (0) 2020.10.18