뭉
노재능 록리형 개발자
뭉
전체 방문자
오늘
어제
  • 분류 전체보기 (27)
    • Java (18)
      • Grammer (14)
      • Problem Solving (4)
    • JavaScript (0)
      • Grammer (0)
      • jQuery (0)
    • Spring (0)
    • DB (9)
      • SQL (6)
      • JPA (3)
    • Storage (0)
    • ETC (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
뭉
Java/Grammer

생성자와 상속의 관계

생성자와 상속의 관계
Java/Grammer

생성자와 상속의 관계

2021. 12. 25. 23:56

생성자는 객체 생성 시 자동으로 호출되는 메서드입니다.

하지만 생생자는 일반적인 메서드와는 달리 "상속이 불가능" 합니다. 이에 따라 상속받은 클래스는 생성자를 매번 "재정의" 해주어야 합니다.

 

그렇다면 여러분은 상속받은 클래스가 생성자를 재정의하는 것을 보신적이 있으신가요?

아마 많이 보지 못했을 겁니다.

부모 클래스의 생성자가 "매개변수가 없다면 자식 클래스의 생성자는 생략이 가능" 하기 때문이죠.

public class Parent {
	//부모 생성자
	public Parent() {
		System.out.println("constructor");
	}
}

public class Me extends Parent{
	public void say() {
		System.out.println("hello");
	}
}

public class Main {
	public static void main(String[] args) {
		Me me = new Me();	//constructor
		me.say();	//hello
	}
}

 

위와 같이 자식 클래스에서 따로 생성자를 재정의하지 않아도 자동적으로 부모 생성자가 호출되는 것을 보실수 있습니다.

 

 

반대로 매개변수가 존재하는 부모 클래스의 생성자의 경우는 생략이 불가능 합니다.

public class Parent {
	//부모 생성자
	public Parent(String constructor) {
		System.out.println(constructor);
	}
}

public class Me extends Parent{
    //자식 생성자 재정의
    //생략하면 에러
    public Me(String constructor) {
        super(constructor);
    }

	public void say() {
		System.out.println("hello");
	}
}

public class Main {
	public static void main(String[] args) {
		Me me = new Me("constructor");	//constructor
		me.say();	//hello
	}
}

부모 생성자는 새로운 매개변수를 받아으며 자식 생성자에서 이를 생략하려고 하자 에러가 납니다.

따라서 "부모 생성자의 매개변수가 있는 경우 반드시 자식 생성자를 명시"해줘야 합니다.

 

 

'Java > Grammer' 카테고리의 다른 글

String Class (3) - 정규표현식  (0) 2022.04.02
String Class (2) - 주요 메서드  (0) 2022.03.27
String Class (1) - Immutable과 StringBuilder/StringBuffer  (0) 2022.03.26
추상클래스와 인터페이스의 차이  (0) 2022.01.16
Call by value  (0) 2021.12.28
    'Java/Grammer' 카테고리의 다른 글
    • String Class (2) - 주요 메서드
    • String Class (1) - Immutable과 StringBuilder/StringBuffer
    • 추상클래스와 인터페이스의 차이
    • Call by value
    뭉
    뭉
    노재능 록리형 개발자

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.