Java

자바 상속 Child(자녀) 클래스의 생성자를 만들 때 super 함수 사용하기

567Rabbit 2024. 6. 3. 11:26

 

(생성자 복습하기)

 

https://codebunny99.tistory.com/125

 

자바의 생성자(Constructor)와 접근 제어자(Access)

생성자( Constructor ) 란 - 생성자는 클래스의 인스턴스를 생성할 때 호출되는 특별한 메서드- 클래스 이름과 동일한 이름을 가지며 반환 타입이 없다.  (1) public class MemberMain { public static void main(S

codebunny99.tistory.com

 

 

 

생성자를 만들면, // 3번과 같이 코딩을 효율적으로 할 수 있다. 

    // 1번
    Member m1 = new Member();
    m1.name = "홍길동";
    m1.tel = "010-1111-2222";
    m1.address = "인천 서구";

    // 2번
    Member m2 = new Member();
    m2.setMember("김나나", "010-3333-3333" , "인천 서구 청라");

    // 3번
    Member m3 = new Member("아이유", "010-5555-5555" , "인천 서구 가좌동");

 

 

디폴트 생성자를 만들어주고, this를 사용하여 생성자 함수에 직접 파라미터를 넣으면

 

// 3번과 같이 함수안에 파라미터를 바로 입력하는 간결한 코딩을 할 수 있었다.

 

 

 

 

Super 함수 이용하는 이유와 방법

 

복습한 경우에는, 상속을 이용하지 않았기 때문에 상속의 개념과 덧붙여서 생성자를 사용하는 방법을 알아보려고 한다.

 

부모의 클래스에서는 위의 방식으로 똑같이 생성자를 만들어주면 된다.

 

자녀의 클래스 또한 위의 방식으로 똑같이 생성자를 만들어줄 수 있다. 그러나,

 

자녀의 생성자는 부모의 생성자를 상속받으면 더욱 효율적인 코딩을 할 수 있다.

 

 

 

메인에서 생성자로 출력하고자 하는 입력문은 다음과 같다.

 

 

 

 

부모의 생성자를 이용한 코딩이다. age 부분은 마이너스로 나오면 안되므로 유효성 검사를 한 것이다.

 

 

 

 

super함수를 이용하지 않을 시에, 자녀 클래스에서는 this.를 통해 출력할 수도 있지만, 코드가 너무 길다.

 

 

 


이를 짧게 코딩하기 위해서는 super() 함수를 사용해서,  부모의 생성자를 그대로 상속받아 사용할 수 있다.  

 

 

 

 

출력 결과이다.