하위 클래스 계승 부모 클래스 시 구조 함수 관련 문제 분석

총화
1.하위 클래스 가 대상 을 만 들 때 부모 클래스 의 구조 방법 을 사용 합 니 다.
2.슈퍼 디 스 플레이 성명 을 사용 하면 이 디 스 플레이 성명 의 부모 구조 방법 을 호출 하 는 것 입 니 다.없 으 면 기본적으로 부모 클래스 를 호출 하 는 빈 구조 방법(부모 클래스 에서 파 라 메 터 를 가 진 구조 방법 을 설명 하고 기본 적 인 것 은 쓰기)을 표시 합 니 다.
네트워크 베 끼 기:하위 클래스 대상 을 만 들 때 부모 클래스 의 구성원 변수 와 방법 도 메모리 에 불 러 옵 니 다.
분석
1.자 류 는 왜 부류 의 속성 과 방법 을 계승 할 수 있 습 니까?
하위 클래스 대상 에 부모 클래스 대상 포함
하위 클래스 대상 을 만 드 는 과정 에서 부모 클래스 구조 방법(내 장 된 부모 클래스 대상 을 먼저 만 드 는 것)을 사용 한 다음 에 자신의 대상 을 만 듭 니 다.
그래서 하위 구 조 를 구성 할 때 먼저 부모 류 의 구조 방법 을 사용 합 니 다.만약 에 하위 구조 방법 에서 부모 류 를 호출 하 는 어떤 구조 방법 을 표시 하지 않 으 면 시스템 은 기본적으로 슈퍼()를 추가 합 니 다.이때 부 류 는 반드시 인삼 이 없 는 구조 방법 이 있어 야 한다.그렇지 않 으 면 잘못 보고 할 것 이다.
2.자 류 는 구조 할 때 형 삼 은 몇 개 일 수 있 습 니까?(부모 클래스 에 접근 할 수 있 는 구성원 속성 m 개 를 설정 합 니 다.하위 클래스 가 자신의 것 을 증가 하면 n 개 증가 합 니 다)
A:하위 클래스 가 자신의 속성 을 새로 추가 하지 않 았 을 때 부모 클래스 에서 물 려 받 은 m 개의 속성 이 있 습 니 다.이 럴 때 하위 클래스 가 매개 변 수 를 쓰 는 구조 방법 은 계 승 된 m 개의 매개 변 수 를 선택 하여 초기 화 하 는 것 입 니 다.
B:하위 클래스 가 자신 이 새로 추가 한 속성 이 있 을 때 그 속성 은 부모 클래스 에서 물 려 받 은 m 개+자신 이 새로 추가 한 n 개가 있 습 니 다.모두 m+n 개 이 고 그 다음 에 선택 적 으로 구조 방법 을 씁 니 다.
3.상속 관계 가 존재 할 때 자 류 의 구조 방법 을 어떻게 봅 니까?
4.567917.어차피 부류 의 구조 방법 을 먼저 사용 할 것 이다.
  • 슈퍼(매개 변수 목록)를 보 여 줍 니 다.먼저 계승 하 는 부모 클래스 속성 을 초기 화 합 니 다
  • 4
  • 부모 류 를 호출 하 는 무 참 구조 방법 슈퍼()
  • 4.구조 방법 에서 속성 에 대해 어떻게 값 을 부여 합 니까?
    형 삼 하나,둘,셋,몇 개 든 중요 하지 않 습 니 다.어떻게 할당 하 느 냐 는 당신 이 구조 방법의 방법 체 에서 진행 하 는 조작 에 달 려 있 습 니 다!(초기 화 되 지 않 은 구성원 변 수 는 기본 값 이 있 습 니 다(부분 변 수 는 초기 값 을 표시 해 야 합 니 다)
    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);
    
      }
    }
    출력 결과:

    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기