상속(Inheritance)

일반적인 상속의 개념처럼 부모 → 자식 에게 받는 것이 아닌 자식 → 부모를 선택해 상속 받는다.

상속받은 클래스 = 자식 클래스, 하위 클래스, 서브 클래스 라고 부른다 상속해 준 클래스 = 부모 클래스, 상위 클래스, 슈퍼 클래스

상속의 대상

자식 클래스가 상속을 받게 되면 부모 클래스의 필드와 메소드를 받는다. 단, private를 갖는 필드나 메소드는 상속이 불가하고, 패키지가 다른 경우 default인 경우에도 상속이 불가

상속의 방법(선언)

상속받을 자식 클래스 뒤에 extends 키워드를 사용하고 부모 클래스를 적으면 된다

class /*자식 클래스*/ extends /*부모 클래스*/{
    ..
}

자바에서는 자식 클래스가 여러 부모로부터 다중 상속을 받는 것은 불가능하다. 1 개의 부모 클래스로부터 단일 상속만 허용된다. 하지만 여러 개의 자식 클래스에게 상속이 가능

Untitled

상속의 사용 (예제)

요약

  1. class /*자식 클래스*/ extends /*부모 클래스*/{ .. }
  2. 자식은 부모로부터 메소드와 필드를 물려받는다. 2-1. 부모는 자식에서 정의한 메소드나 필드를 사용하지 못한다 (자식 = 자신 + 부모 / 부모 = 자신)
  3. 자식은 하나의 부모에게만 상속 받을 수 있다. 단일 상속만 가능하다.
  4. 부모는 여러 자식에게 상속이 가능하다
  5. 자식 클래스가 더 다양한 기능이 가능하기 때문에 자식 클래스로 인스턴스를 생성하는 것이 효율적

super와 super()