JAVA 범 형 및 상속 문제

13658 단어 javaSE
글 목록
  • 인 터 페 이 스 를 계승 하 는 범 형
  • 인 터 페 이 스 를 실현 할 때 범 형
  • 을 가리킨다.
  • 실현 유형 도 범 형
  • 범 형 방법
  • 직접 사용 형
  • 호출 방법 시 명확 형
  • 범 형의 계승 과 정의
  • 범 형 정의
  • 범 형의 계승
  • 총화
  • jdk 1.5 이후 의 새로운 특성,jdk 1.8 이후 등호 오른쪽 에 있 는 범 형 은 쓰 지 않 아 도 됩 니 다.
    대상 을 만 들 때 유형 을 명 확 히 하고 용기 에서 자주 사용 할 수 있 습 니 다.
    계승 인터페이스의 범 형
    interface MyInterface<T> {    
    }
    

    인 터 페 이 스 를 실현 할 때 범 형 을 가리킨다.
    class test1 implements MyInterface<String> {
    }
    

    실현 유형 도 범 형 을 띠 고 있다.
    class test<T> implements MyInterface<T> {}
    

    일반적인 방법
    직접 사용 형
    class MyMethod <T> {
        public void show(T t) {
            System.out.println(t);
        }
    }
    

    호출 방법
    //    ,           ,         ,      
    
    public <Q> void method(Q para) {
        System.out.println(para);
    }
    
    //      ,       ,       
    

    범 형의 계승 과 정의
    범 형 정의
    범 형의 경 계 는 매우 유용 하 다.
    만약 에 우리 가 그의 범 형 유형 이 Number 류 의 하위 클래스,예 를 들 어 Integer 나 Long 이 기 를 원한 다 면 범 형 자 체 는 서로 다른 유형의 범 형 을 지원 하지 않 기 때문에 범 형 정의 가 있어 서 우 리 는 범 형의 상 계 를 나타 낸다.즉,이 T 유형 은 반드시 Number 또는 Number 의 하위 클래스 여야 한다.이렇게 이해 할 수 있다.T 는 Number 의 클래스 를 계승 하 는 것 이다.T 도 어댑터 를 사용 할 수 있 습 니까?대신 하 다
    public statci <T extends Number> T add(T a, T b) {
        return a + b;
    }
    //        ,        ,         Number   
    
    //  ,           .    T  ,    Integer    Integer 
    

    소스 코드 에서 우 리 는 이런 코드 를 자주 본다.
    <T extends Comparable<T>>
    

    어떤 학우 들 은 이미 속 았 을 것 이다.사실 이것 도 일반적인 정의 예 이다.비록 그 가 계승 한 유형 도 일반적인 유형 이지 만,일반적인 T 가 많아 졌 다.
    위의 이 예 는 이렇게 이해 할 수 있다.T 는 Comparable 인 터 페 이 스 를 실현 한 클래스 이다.이 인 터 페 이 스 를 실현 하지 않 으 면 이 범 형 이 될 수 없다.
    범 형의 계승
    하위 클래스 가 범 형 부모 클래스(또는 범 형 인터페이스)를 계승 할 때 몇 가지 상황 이 있다.
  • 부 류 는 범 형 을 이런 상황 으로 지정 할 때 자 류 는 범 형 류 가 아니 라 정상 적 인 류
    //    
    class Father<T> {
        T name;
    }
    
    class Son extends Father<String> {}
    
    //  ,             
    class Son {
        String name;
    }
    
  • 이다.
  • 자 류 도 범 형 류 이다.이때 자 류 의 범 형 T 와 부 류 의 범 형 T 는 범 형 이다.자 류 를 만 들 때 자 류 에 범 형 을 정 해 야 하 는 유형 이 고 부 류 의 범 형 도 지정 한다.
    class Son<T> extends Father<T> {
        public T print(T a) {
            System.out.println(a);
            return a;
        }
    }
    
    //  ,             
    class Son {
        T name;
        public T print(T a) {
            System.out.println(a);
            return a;
        }
    }
    
  • 자 류 는 기타 범 형 을 가지 고 있 으 며,부류 지정 유형
    class Son<T> extends Father<String> {
        public T print(T a) {
            System.out.println(a);
            return a;
        }
    }
    
    //  ,                ,   ,        ,     .   ,          T,       ,         
    class Son<T> extends Father<String> {
        String name;
        
        public T print(T a) {
            System.out.println(a);
            return a;
        }
    }
    
  • 자 류 는 다양한 범 형
    class Son<T, E> extends Father<T> {
        public E print(E e) {
            System.out.println(a);
            return a;
        }
    }
    
    //     ,    T    T     ,         
    class Son <T, E> {
        T name;
        
        public E print(E e) {
            System.out.println(a);
            return a;
        }
    }
    
  • 을 가지 고 있다.
    총결산
    따라서 범 형의 계승 에 있어 서 자 류 는 범 형 류 든 아니 든 몇 개의 범 형 유형 이 있 습 니 다.계승 하거나 실현 하 는 부류 나 인 터 페 이 스 는 반드시 지정 되 어야 합 니 다.
    때로는 하위 클래스 대상 을 만 들 때 지정 하고,때로는 하위 클래스 를 쓸 때 이 루어 집 니 다.그러나 규칙 은 부모 클래스 의 유형 이 반드시 지정 되 어야 합 니 다.그렇지 않 으 면 컴 파일 할 때 오류 가 발생 합 니 다.

    좋은 웹페이지 즐겨찾기