Daily coding

Java Basic : day 9 - Inheritance 상속 2 - super 참조 본문

Language/Java_basic

Java Basic : day 9 - Inheritance 상속 2 - super 참조

sunnnkim 2019. 11. 29. 17:27

Inheritance 상속 2

 

 

* Super 참조 

 

 

// 부모 클래스
public class ParentClass {


        private int number;

 

          // 기본 상속자

          public ParentClass() {
                    System.out.println("ParentClas ParentClass() 호출 ");
          }


          // 매개변수가 1개 있는 상속자
          public ParentClass(int number) {
                    this.number = number;
                    System.out.println("ParentClas ParentClass(int number) 호출 ");
          }
}

 

 

// 자식 클래스 
public class ChildClass extends ParentClass {
         private String name;

         public ChildClass() {


                  super();
                  // 위의 코드는 부모클래스의 생성자(기본) 호출하는 코드
                  // 위의 코드를 사용하면 부모 객체의 생성자를 호출할 수 있다.
                  // super을 사용하지 않으면 부모 객체의 기본 생성자가 호출이 된다.
                  System.out.println("ChildClass ChildClass() 호출");
         }

         public ChildClass(String name, int num) {


                  // 만약 자식 객체에서 부모 클래스의 변수의 값을 초기화하고 싶으면
                  // 파라미터를 통해서 외부에 부모클래스의 생성자 값을 받고
                  // super 참조를 통해서 부모클래스의 특정 생성자를 불러온다.

                  super(num); 
                  // 위 코드의 경우는 부모 클래스의 생성자 중
                  // public ParentClass(int number) 를 호출하여 부모클래스를  초기화 한다.

                  this.name = name;
                  System.out.println("ChildClass ChildClass(String name) 호출");
         }

}

 

 

 

결과 :

 

// 메인클래스

public class mainClass {
          public static void main(String[] args) {

                    ChildClass cc = new ChildClass();
                  

                    // 출력 결과 :
                    // ParentClas ParentClass() 호출 
                    // ChildClass ChildClass() 호출

 


                    ChildClass cc2 = new ChildClass("", 21);


                   // 출력 결과 : 

                   // ParentClas ParentClass(int number) 호출 
                   // ChildClass ChildClass(String name) 호출

          }

}