하위 클래스 계승 부모 클래스 시 구조 함수 관련 문제 분석
1.하위 클래스 가 대상 을 만 들 때 부모 클래스 의 구조 방법 을 사용 합 니 다.
2.슈퍼 디 스 플레이 성명 을 사용 하면 이 디 스 플레이 성명 의 부모 구조 방법 을 호출 하 는 것 입 니 다.없 으 면 기본적으로 부모 클래스 를 호출 하 는 빈 구조 방법(부모 클래스 에서 파 라 메 터 를 가 진 구조 방법 을 설명 하고 기본 적 인 것 은 쓰기)을 표시 합 니 다.
네트워크 베 끼 기:하위 클래스 대상 을 만 들 때 부모 클래스 의 구성원 변수 와 방법 도 메모리 에 불 러 옵 니 다.
분석
1.자 류 는 왜 부류 의 속성 과 방법 을 계승 할 수 있 습 니까?
하위 클래스 대상 에 부모 클래스 대상 포함
하위 클래스 대상 을 만 드 는 과정 에서 부모 클래스 구조 방법(내 장 된 부모 클래스 대상 을 먼저 만 드 는 것)을 사용 한 다음 에 자신의 대상 을 만 듭 니 다.
그래서 하위 구 조 를 구성 할 때 먼저 부모 류 의 구조 방법 을 사용 합 니 다.만약 에 하위 구조 방법 에서 부모 류 를 호출 하 는 어떤 구조 방법 을 표시 하지 않 으 면 시스템 은 기본적으로 슈퍼()를 추가 합 니 다.이때 부 류 는 반드시 인삼 이 없 는 구조 방법 이 있어 야 한다.그렇지 않 으 면 잘못 보고 할 것 이다.
2.자 류 는 구조 할 때 형 삼 은 몇 개 일 수 있 습 니까?(부모 클래스 에 접근 할 수 있 는 구성원 속성 m 개 를 설정 합 니 다.하위 클래스 가 자신의 것 을 증가 하면 n 개 증가 합 니 다)
A:하위 클래스 가 자신의 속성 을 새로 추가 하지 않 았 을 때 부모 클래스 에서 물 려 받 은 m 개의 속성 이 있 습 니 다.이 럴 때 하위 클래스 가 매개 변 수 를 쓰 는 구조 방법 은 계 승 된 m 개의 매개 변 수 를 선택 하여 초기 화 하 는 것 입 니 다.
B:하위 클래스 가 자신 이 새로 추가 한 속성 이 있 을 때 그 속성 은 부모 클래스 에서 물 려 받 은 m 개+자신 이 새로 추가 한 n 개가 있 습 니 다.모두 m+n 개 이 고 그 다음 에 선택 적 으로 구조 방법 을 씁 니 다.
3.상속 관계 가 존재 할 때 자 류 의 구조 방법 을 어떻게 봅 니까?
4.567917.어차피 부류 의 구조 방법 을 먼저 사용 할 것 이다.
형 삼 하나,둘,셋,몇 개 든 중요 하지 않 습 니 다.어떻게 할당 하 느 냐 는 당신 이 구조 방법의 방법 체 에서 진행 하 는 조작 에 달 려 있 습 니 다!(초기 화 되 지 않 은 구성원 변 수 는 기본 값 이 있 습 니 다(부분 변 수 는 초기 값 을 표시 해 야 합 니 다)
eg:하위 구조 방법 에서 세 개의 매개 변 수 를 전달 합 니 다.
1.str 대 가 를 부모 클래스 속성 에 부여 하고 num 1 과 num 2 대 가 를 자신 에 게 새로 추가 하 는 속성 을 선택 할 수 있 습 니 다.
//하위 son 의 구조 방법
Son(String str,int num,char ch){
super(str);
System.out.println("하위 클래스 는 구조 방법 이 있 습 니 다");
this.num = num;
this.char = ch;
}
2.str 와 num 을 부모 클래스 에 할당 하고 char 를 자신 에 게 할당 하 는 것 도 선택 할 수 있 습 니 다.
//하위 son 의 구조 방법 2
Son(String str,int num,char ch){
super(str,num);
System.out.println("하위 클래스 는 구조 방법 이 있 습 니 다");
this.char = ch;
}
그래서 우 리 는 하위 구조 방법 만 기억 하면 반드시 부모 류 의 구조 방법 을 호출 할 것 이다.각종 속성의 대 가 는 모두 방법 내부 에서 결정 되 는 것 이지 형 삼 위치,수량 등 이 속성 을 결정 하 는 초기 화 가 아니다.
실례
package yang.polymorphic;
class Father{
public String str1;
public int num1;
Father(){
System.out.println(" ");
}
Father(String str){
System.out.println(" 1");
this.str1 = str;
}
}
class Son extends Father{
public String str2;
public int num2;
Son(){
// , super()
System.out.println(" ");
}
Son(String str){
System.out.println(" 1");
this.str2 = str;
}
Son(String str,int num){
super(str);
System.out.println(" 2");
this.num2 = num;
}
}
public class Test {
public static void main(String[] args) {
Son son = new Son("dd",22);
System.out.println("1."+son.str1+"--"+son.str2+"--"+son.num1+"--"+son.num2);
System.out.println("-------------------------------");
Son son2 = new Son("yy");
System.out.println("2."+son2.str1+"--"+son2.str2+"--"+son2.num1+"--"+son2.num2);
}
}
출력 결과:이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 부모 클래스더 읽 기 계승 관계 에서 부모 클래스 든 하위 클래스 든 이러한 클래스 의 this 는 최종 new 에서 나 온 인 스 턴 스 대상 을 대표 하기 때문에 부모 클래스 에서 this 로 하위 클래스 의 정 보 를 얻...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.