상속 (Inheritance)

조상원·2025년 8월 2일

JAVA

목록 보기
13/34
  • 부모 클래스의 맴버를 자식 클래스에게 물려주는 것
  • 부모 : 부모/상위/슈퍼 클래스
  • 자식 : 자식/하위/서브 클래스
  • 상속을 통해서 다른 클래스가 가지고 있는 맴버를 직접 만들지 않고 상속을 받음으로써 자신의 멤버처럼 사용할 수 있음

클래스의 상속

[접근 제한자] class 자식클래스명 extends 부모클래스명 { ... }
  • 다중 상속 불가
  • 모든 클래스는 Object 클래스의 후손
  • 부모 클래스에서 private 접근 제한을 가지는 필드와 메소드는 상속에서 제외
// 부모 클래스
public class Animal {
  ...
}
// 자식 클래스
public class Dog extends Animal {
  ...
}

자식 객체 생성

  • 생성자는 객체 생성을 위한 특별한 메소드로 상속되지 않는다
  • 자식 클래스의 객체를 생성하면 부모 클래스의 생성자가 먼저 호출되면서 부모 객체가 생성되고 자식 객체가 생성됨
  • 자식 클래스의 생성자 안에서 super()를 통해서 부모 클래스의 생성자를 호출한다
  • super()는 자식 클래스의 생성자 첫 줄에 위치해야한다
// 부모 클래스
public class Animal {
  private String name;
  private String kinds;
  
  public Animal() {
  }

  public Animal(String name, String kinds) {
      this.name = name;
      this.kinds = kinds;
  }
}
// 자식 클래스
public class Dog extends Animal {
  private int weight;

  public Dog() {
    // super() 생략 시 자동으로 생성한다.
  }

  public Dog(String name, String kinds, int weight) {
    super(name, kinds);

    this.weight = weight;
  }
}

0개의 댓글