자바 노트(08,계승)
Last modified:2013-06-12 16:42:56
**********************************
계승:
계승(확장):
1.코드 의 재 활용 성 향상;
2.상속 은 류 와 류 사이 에 관 계 를 맺 게 한다.이 관계 가 있어 서 다 태 적 특성 이 생 겼 다.
주의:다른 종류의 기능 간소화 코드 를 얻 기 위해 계승 하지 마 십시오.류 와 류 사이 에 속 하 는 관계 가 있어 야 계승 할 수 있다.소속 관계 is a。부류 가 갖 춘 자 류 는 모두 갖 추고 있다.
자바 언어:자바 는 단일 계승 만 지원 하고 다 중 계승 은 지원 되 지 않 습 니 다.(상속 을 많이 하면 안전 위험 을 초래 하기 때문이다.여러 부모 클래스 에서 같은 기능 을 정의 하지만 기능 내용 이 다 르 면 하위 클래스 는 어느 것 을 실행 해 야 할 지 확실 하지 않 습 니 다.그러나 자바 는 이러한 메커니즘 을 보류 하고 다른 형식 으로 완성 했다.
자바 다 중 계승 지원.바로 계승 체계 다.
어떻게 계승 체계 중의 기능 을 사용 합 니까?
시스템 을 사용 하려 면 먼저 시스템 의 부모 클래스 에 대한 설명 을 찾 아 보 세 요.부모 클래스 에서 이 시스템 의 공 통 된 내용 을 정의 하기 때 문 입 니 다.공통성 내용 을 이해 하 다.이 시스템 의 기본 기능 을 알 수 있다.그러면 이 시스템 은 이미 기본적으로 사용 할 수 있다.
구체 적 으로 호출 할 때 하위 클래스 의 대상 을 만 듭 니 다.왜 일 까요?
첫째,부모 클래스 가 대상 을 만 들 수 없 기 때문에 추상 클래스 와 인 터 페 이 스 는 만 들 수 없다.둘째,하위 클래스 를 만 드 는 대상 은 더 많은 기능 을 사용 할 수 있 고 기본 적 인 것 도 포함 되 며 특유 의 것 도 포함한다.
한 마디 로 부모 클래스 기능 을 찾 아 보고 하위 클래스 대상 을 만 들 고 기능 을 사용 합 니 다.
하위 클래스 가 나타 난 후 클래스 구성원 의 특징:
클래스 의 구성원:
1.변수;
2,함수;
3.구조 함수;
1,변수:
하위 클래스 에 비 개인 적 인 동명 이인 변수 가 나 타 났 을 때
하위 클래스 는 이 클래스 의 변 수 를 this 로,하위 클래스 는 부모 클래스 의 동명 변 수 를 슈퍼 로 방문 합 니 다.
슈퍼 의 사용 은 this 의 사용 과 거의 일치 합 니 다.this 는 이러한 대상 의 인용 을 대표 하고 슈퍼 는 부모 대상 의 인용 을 대표 합 니 다.
하위 클래스 에서 같은 이름 의 구성원 변 수 를 정의 합 니 다.하위 클래스 는 부모 클래스 의 같은 이름 변 수 를 사용 하려 면 키워드 슈퍼 를 사용 하여 구분 해 야 합 니 다.일반적으로 이런 상황 은 발생 하지 않 는 다.왜냐하면 부류 에 있 기 때문에 자 류 는 정의 할 필요 가 없다.그리고 부모 클래스 가 정의 할 때 일반 변 수 는 모두 사유 화 됩 니 다.
class Person {
public String test = "person";
}
class Student extends Person{
public String test = "student";
public void getTest(){
System.out.println(super.test +" : "+this.test +" : "+test);
}
public static void main(String args[]){
new Student().getTest();
}
}
// :
//person : student : student
2,하위 클래스 의 함수:
하위 클래스 가 부모 클래스 와 같은 함수 가 나타 날 때 하위 클래스 대상 이 이 함 수 를 호출 할 때 하위 클래스 함수 의 내용 을 실행 합 니 다.부모 클래스 의 함수 내용 이 덮어 쓰 는 것 과 같 습 니 다.이 경우 함수 의 또 다른 특성 입 니 다.다시 쓰기(덮어 쓰기).
자 류 는 부 류 를 계승 하여 부 류 의 기능 을 자 류 에 답습 했다.그러나 하위 클래스 는 이 기능 을 갖 추고 있 지만 기능 의 내용 은 부모 클래스 와 일치 하지 않 습 니 다.이 때 는 새로운 기능 을 정의 할 필요 가 없 이 덮어 쓰기 특성 을 사용 하여 부모 클래스 의 기능 정 의 를 보류 하고 다시 쓰기(덮어 쓰기)기능 의 내용 을 사용 합 니 다.
덮어 쓰기 주의사항:
하위 클래스 가 부모 클래스 를 덮어 쓰 려 면 하위 클래스 권한 이 부모 클래스 권한 보다 크 도록 해 야 합 니 다.그렇지 않 으 면 컴 파일 에 실 패 했 습 니 다.
정적 은 정적 만 덮어 쓸 수 있 습 니 다.
기억 하기:
다시 불 러 오기:같은 이름 함수 의 매개 변수 목록 만 봅 니 다.
덮어 쓰기:하위 클래스 방법 은 똑 같 아야 합 니 다.(방법 명 과 반환 값 형식 은 같 아야 합 니 다.)
Core in 자바 SE 5.0 부터 한 방법 이 다른 방법 을 덮어 쓸 때 더 엄격 한 반환 형식 을 지정 할 수 있 습 니 다.
반환 값 유형 에 대해 서 는 같은 유형 을 말 합 니 다.예 를 들 어 아버지 류 방법 에서 돌아 오 는 것 은 Father 입 니 다.그러면 자 류 를 덮 은 방법의 반환 값 은 Son 일 수 있 습 니 다.마치 아버지 류 는 당신 의 동물 을 되 돌려 주 는 방법 이 있 고 자 류 는 아버지 류 를 덮 는 방법 이 있 습 니 다. 개 한 마리 가 돌 아 왔 다.
인증 코드 는 다음 과 같 습 니 다:
class Father
{
void show(){
System.out.println("father");
}
}
class Son extends Father
{
void show(){
System.out.println("Son");
}
}
class Fu
{
Father done(){ // Father
System.out.println("Fu done....");
return new Father();
}
}
class Zi extends Fu
{
@Override
Son done(){ // Son
System.out.println("......Zi done");
return new Son();
}
}
public class TestClass
{
public static void main(String[] a){
Fu fu = new Zi();
fu.done().show();
}
}
실행 결과:
---------- java ----------
......Zi done
Son
3.하위 클래스 의 구조 함수.
하위 클래스 대상 을 초기 화하 면 부모 클래스 의 구조 함수 도 실 행 됩 니 다.그것 은 하위 클래스 의 구조 함수 기본 첫 번 째 줄 에 암시 적 인 구문 슈퍼()가 있 기 때 문 입 니 다.
super();부모 클래스 의 빈 매개 변수의 구조 함수 에 접근 할 수 있 으 며,하위 클래스 의 모든 구조 함수 의 기본 줄 은 슈퍼()입 니 다.
왜 하위 클래스 는 반드시 부모 클래스 의 구조 함 수 를 방문 해 야 합 니까?
부모 클래스 의 비 개인 속성 과 방법 으로 인해 하위 클래스 는 직접 가 져 올 수 있 습 니 다.하위 클래스 대상 이 만 들 때 부모 클래스 가 어떻게 이 데 이 터 를 초기 화 하 는 지 확인 해 야 합 니 다.따라서 하위 클래스 가 대상 에서 초기 화 하 는 것 은 먼저 부모 클래스 의 구조 함수 에 접근 하 는 것 입 니 다.부모 클래스 에서 지정 한 구조 함수 에 접근 하려 면 슈퍼()문 구 를 수 동 으로 정의 하 는 방식 으로 지정 할 수 있 습 니 다.
부모 클래스 에서 정의 하 는 기능(비 사유)자 류 는 직접 사용 할 수 있 습 니 다.구조 함수 호출"슈퍼();";일반 함 수 를"슈퍼"로 호출 합 니 다.
메모:슈퍼 문 구 는 구조 함수 의 첫 줄 에 정 의 됩 니 다.구조 함수 에 this 문구 가 있 거나 슈퍼 문구 가 있 습 니 다.
하위 클래스 의 실례 화 과정 결론:
하위 클래스 의 모든 구조 함 수 는 기본적으로 부모 클래스 의 빈 매개 변수의 구조 함수 에 접근 합 니 다.모든 구조 함수 의 첫 줄 에 암시 적 인 슈퍼()가 있 기 때 문 입 니 다.부모 클래스 에 빈 매개 변수의 구조 함수 가 없 을 때 하위 클래스 는 슈퍼 문장의 형식 을 통 해 접근 할 부모 클래스 의 구조 함 수 를 지정 해 야 합 니 다.
물론 하위 클래스 의 구조 함수 첫 줄 도 this 문 구 를 수 동 으로 지정 하여 본 클래스 의 구조 함 수 를 방문 할 수 있 습 니 다.하위 클래스 에 서 는 최소한 하나의 구조 함수 가 부모 클래스 의 구조 함수 에 접근 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 학습 노트 의 계승 과 초기 화자바 에서 이른바 코드 블록 이란 큰 괄호 {} 로 여러 줄 의 코드 를 한데 묶 어 하나의 독립 된 데이터 체 를 형성 하 는 것 이다.자바 의 코드 블록 은 주로 다음 과 같은 네 가지 로 나 뉜 다. 정적 코드...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.