[Java] 상속

YoungMinKim·2020년 11월 8일
0
post-thumbnail

CLASS의 상속 (상속의 기본)

상속의 기본 문법 이해

extends 키워드를 통해 부모 클래스를 상속 받음으로써, 부모가 가지고 있는 특성을 사용 할 수 있게된다.

이게 무슨 소리인가요??
1. 상속을 통해 부모 클래스가 가진 인스턴스 변수(데이터 변수), 인스턴스 메소드 사용이 가능하다.
2. 공통된 부분은 부모 클래스에, 개별적인 부분은 자식 클래스에서 처리 하는 로직 작성이 가능하다.

  • 코드의 재활용을 위한 문법을 상속이라 한다. (x)
  • 연관된 일련의 CLASS들에 대해 공통적인 규약을 정의할 수 있습니다. (o)
  • 클래스 변수, Method는 상속의 대상이 아니다 (o)

상속의 기본적인 특성

상속의 기본적인 특성

  • BussinessMan 인스턴스생성할 시 Man Class가 가지고 있는 인스턴스 변수, 메서드BussinessMan 클래스에서 사용 할 수 있게 된다.
  • 포함된 것이 포함 시킨 것을 가르킨다.
    • 이 말은 그냥 무시하세요 :)
  • private로 선언한 것이 아니면 부모 객체의 데이터에 접근이 가능하다.

상속 관련 용어

관련 용어

  • 상위 클래스, 하위 클래스
  • 부모 클래스, 자식 클래스
  • 기초 클래스, 유도 클래스

상속과 생성자

생성자

  • Construtor는 기본적으로 클래스 안에 존재하는 인스턴스 변수를 초기화 하는 목적.
  • 해당 클래스가 생성 될 때, 해당 클래스의 생성자를 통해 인스턴스 변수를 초기화 해줘야 한다.
  • 부모 ← 자식 으로 이루어진 상속 관계에서 부모 클래스에서 생성자를 통해 인스턴스 변수를 초기화.

상속과 생성자 : 생성자 호출 관계 파악

  • 자식 클래스에서도 상위 클래스의 생성자 호출을 해줘야 한다.
  • 하위 클래스의 생성자 에서는 반드시 상위 클래스의 생성자를 호출하게 되 있다. [반드시]
  • 첫번째 라인에 상위 클래스의 생성자를 호출하는 문장이 없을 시 컴파일러가 상위 클래스의 생성자를 내부적 호출.

자식 클래스에서 부모 클래스의 생성자를 어떻게 호출할까요??

  • super('매개변수 인자'); [반드시 첫번째 라인에 들어가야 한다]
  • 컴파일러에 의해 내부적으로 'super()' 가 들어가 있다 봐도 무방하다.

다중 상속

  • 자바는 다중 상속을 지원하지 않는다.
profile
https://ym1085.github.io

0개의 댓글