상속

생성일: 2021년 9월 7일 오후 2:14

상속이란?

상속은 기존의 클래스를 재사용하여 새로운 클래스로 작성하는 것이다.

이는 기존의 클래스를 재사용 함으로서 코드를 공통적으로 관리할 수 있기 때문에 코드 추가 및 변경이 매우 용이하다.

상속을 하는 법은 class의 선언뒤에 extends키워드와 상속하고 싶은 클래스를 명시하면된다.

class 자식클래스이름 extends 부모클래스이름{
    ...
}

보통 상속을 해주는 클래스부모 클래스 또는 조상 클래스 라한다.

상속을 받는 클래스를 자식클래스 또는 자손 클래스라한다.

자식 클래스의 특징

  • 자식 클래스는 부모 클래스가 가지는 맴버변수와 메서드를 모두 사용할 수 있다.
  • 부모 클래스생성자초기화 블럭상속되지않는다.
  • 자식 클래스맴버 개수는 조상 클래스 보다 항상 같거나 많다.
  • 자식 클래스의 인스턴스를 생성하면 부모 클래스의 맴버 + 자식 클래스의 맴버가 합쳐진 하나의 인스턴스로 생성이된다. → 벤다이어그램 생각하면 이해가 쉬움

상속관계와 포함관계 판별하는 팁

보통 그냥 상속을 해야할지 혹은 포함만 하면 될지 고민할 때가 많다.

이때는 is a인지 has a 인지 확인을 하면된다.

상속관계를 설명할때는 is a'~는(은) ~이다.라고 생각하면 좋다.

ex) 만화책은 책이다. → (o)

ex) 핫도그는 소시지이다. → (x)

포함관계를 설명할 떄는 has a'~은 ~를 가지고 있다.라고 판별하면 된다.

ex) 핫도그는 소시지를 가지고 있다. → (o)

ex) 만화책은 책을 가지고 있다. → (x)

단일 상속

Java와 달리 C++에서는 여러 부모로 부터 자식이 상속을 받을 수 있다.

하지만 Java는 다중 상속을 금지한다.

Java는 자식클래스는 단 하나의 부모클래스에게서만 상속을 받을 수 있다. 라는 것이 단일 상속이다.

다중상속의 문제점으로는 다이아몬드 문제가 있다.

Object Class

Object Class모든 클래스의 부모이다.

이는 단일 상속의 설명 때문에 햇갈릴 수도 있는데 이런것이다.

자식 클래스는 부모클래스와 Object 클래스를 직접적으로 다중상속받는 것이 아니다.

부모클래스가 Object Class를 상속 받기 때문에 자식클래스도 사용가능한 것이다

자식 클래스 → 부모 클래스 → Object 클래스

위의 글처럼 상속관계가 이루어진다.

Reference

  • 자바의 정석

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

[Java/Study] Package 와 Import 및 터미널로 자바 실행방법  (0) 2021.09.08
[Java/Study] 오버라이드  (0) 2021.09.07
[Java/Study] 생성자  (0) 2021.09.07
[Java/Study] 변수와 메서드  (0) 2021.09.07
[Java/Study] 클래스와 객체  (0) 2021.09.06

+ Recent posts