ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 매개변수의 자료형 제한
    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

    댓글

Designed by Tistory.