본문 바로가기
Programming/Java

5장. 상속 #1 슈퍼/서브클래스

by jaegom 2020. 6. 11.

상속

1. 상속 -> 슈퍼클래스의 멤버들을 서브클래스가 가져오는 것!

-형식 public class Student extends Person {};
-방향 : 서브클래스가 슈퍼클래스를 접근
-슈퍼클래스는 여러 새끼 까는 것 가능하지만 서브클래스는 여러 부모를 두는 것이 불가능하다.

cf) 상속의 최상위 슈퍼클래스는 java.lang.Object클래스. 모든 클래스가 상속받는다.

  1. Object 클래스 : java.lang 패키지에 속한 클래스이며 모든 클래스는 강제로 Object를 상속받는다. 아무 클래스도 상속받지 않는 최상위 클래스이다.

  2. Object 클래스의 주요 메소드

  • getClass() : 현 객체의 런타임 클래스 리턴
  • boolean equals(Object obj) : obj가 가리키는 객체와 같으면 true 리턴

 

2. 슈퍼클래스와 서브클래스의 생성자 호출 및 실행
순서 : 서브클래스 생성자 호출 -> 슈퍼클래스의 생성자 호출 -> 슈퍼클래스의 생성자 실행 -> 서브클래스의 생성자 실행(최상위 클래스를 바로 가는 것이 아니라 한 단계씩 올라가면서 호출한다.)

-슈퍼클래스와 서브클래스는 생성자 오버로딩이 가능하다.
-서브클래스에서 슈퍼클래스의 생성자를 하나 선택한다.(선택 안하면 슈퍼클래스의 디폴트 생성자 선택)
-슈퍼클래스에 디폴트 생성자 마저 없다면 JVM이 자동으로 하나 생성해서 골라줌.
-서브클래스의 디폴트 생성자는 자동으로 슈퍼클래스의 디폴트 생성자와 매칭된다.
-서브클래스의 일반 생성자는 수동 매칭을 안 해주면 슈퍼클래스의 디폴트 생성자와 매칭된다.
-선택은 super() 메소드를 사용한다.

 

3. super()

-슈퍼클래스의 생성자를 수동 매칭. ex) super(x) 슈퍼클래스의 매개변수 개수에 따라 매칭.
-클래스의 첫 줄에 와야한다.(this()와 같음)

댓글