JAVA 범 형 및 상속 문제
13658 단어 javaSE
대상 을 만 들 때 유형 을 명 확 히 하고 용기 에서 자주 사용 할 수 있 습 니 다.
계승 인터페이스의 범 형
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;
}
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;
}
}
총결산
따라서 범 형의 계승 에 있어 서 자 류 는 범 형 류 든 아니 든 몇 개의 범 형 유형 이 있 습 니 다.계승 하거나 실현 하 는 부류 나 인 터 페 이 스 는 반드시 지정 되 어야 합 니 다.
때로는 하위 클래스 대상 을 만 들 때 지정 하고,때로는 하위 클래스 를 쓸 때 이 루어 집 니 다.그러나 규칙 은 부모 클래스 의 유형 이 반드시 지정 되 어야 합 니 다.그렇지 않 으 면 컴 파일 할 때 오류 가 발생 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ContentResolver를 사용하여 커뮤니케이션에 액세스하는 ContentProvider1. Content Provider는 안드로이드의 4대 구성 요소 중 하나로 위에서 설명한 바와 같이 만약에 콘텐츠 공급자가 다른 응용 프로그램에 접근한다면 이 글은 콘텐츠 해석자로 시스템의 통신록 콘텐츠 공급자에 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.