자바 기초 - 클래스 구조 기 계승

자바 에 서 는 상속, 하위 클래스 가 부모 클래스 에서 계승 할 수 있 는 도 메 인 과 방법 을 자주 사용 합 니 다.구조 기 에 관 한 구조 기 는 일반적인 계승 과 크게 다르다.다음 코드 를 예 로 들 면:
package Thinking; 
public class Father{ 
      public int n; 

      public Father(int n){    
            this.n=n; 
      } 

      public Father(String msg){ 
            System.out.println(msg); 
      } 

} 
class Son extends Father{ 
      public Son(String msg){   //                  
            System.out.println(msg); 
      } 
}

상기 코드 에서 Son 은 Father 의 하위 클래스 이 고 부모 클래스 는 두 개의 구조 함수 가 있 으 며 하나의 매개 변 수 는 int 이 고 하나의 매개 변 수 는 String 이 며 Son 의 구조 함 수 는 부모 류 의 두 번 째 구조 함수 와 같다.그러나 Son 은 컴 파일 을 통과 할 수 없습니다. 이것 은 하위 클래스 의 구조 기 에 부모 클래스 의 무 참 구조 기 호출 이 포함 되 어 있 기 때 문 입 니 다. 만약 에 부모 클래스 에 무 참 구조 기 가 없다 면 그 하위 클래스 는 구조 기 에서 부모 클래스 중 하 나 를 명시 적 으로 호출 해 야 합 니 다. 그렇지 않 으 면 컴 파일 을 통과 할 수 없습니다.
그래서 상술 한 코드 중 두 가지 해결 방법 이 있 을 수 있다.하 나 는 부모 클래스 에 무 참 구조 기 를 추가 하 는 것 이 고, 다른 하 나 는 하위 클래스 에 부모 클래스 구조 기 에 대한 디 스 플레이 호출 (슈퍼 (param) 을 추가 하 는 것 입 니 다.이렇게 해야만 컴 파일 을 통과 할 수 있다.
방법 1:
package Thinking; 
public class Father{ 
      public int n; 

      public Father(){ 
            System.out.println("Father"); 
      } 
      public Father(int n){    
            this.n=n; 
      } 

      public Father(String msg){ 
            System.out.println(msg); 
      } 

} 
class Son extends Father{ 
      public Son(String msg){ 
            System.out.println(msg); 
      } 
}

방법 2:
package Thinking; 
public class Father{ 
      public int n; 


      public Father(int n){    
            this.n=n; 
      } 

      public Father(String msg){ 
            System.out.println(msg); 
      } 

} 
class Son extends Father{ 
      public Son(String msg){ 
            super(msg); 
            System.out.println(msg); 
      } 
}

다시 말 하면 부모 클래스 에 파 라 메 트릭 이 없 을 때 하위 클래스 는 시스템 의 기본 구조 기 를 사용 할 수 없 으 며, 파 라 메 터 가 있 든 없 든, 하위 클래스 구조 함수 에서 첫 번 째 로 부모 클래스 의 구조 함 수 를 호출 해 야 한 다 는 것 이다.

좋은 웹페이지 즐겨찾기