[Java] 상속(Inheritance)

vednuegnuoy·2020년 12월 23일
0
post-thumbnail

상속

객체지향 프로그래밍 언어의 특징
자바 뿐만 아니라 다른 언어에서도(C++. C#, Python 등) 쓰임

  • 기존 클래스로 부터 새로운 클래스를 만드는 것을 가능하게 함
  • 다른 클래스의 메소드와 데이터를 쉽게 재사용 가능
  • extends 뒤에는 단 하나의 클래스만 사용 할 수 있음
  • 자바는 single inheritance만 지원하며 다중 상속 불가능
class B extends A {

}

 = A를 확장을 한다의 의미로 extends를 사용
 = A의 기능을 B가 상속한다.
 = B클래스 A클래스에게 상속을 받는다.

상위클래스(A), 하위클래스(B)
상속하는 클래스(상위) : parent class, base class, super class
상속받는 클래스(하위) : child class, derived class, sub class

상위클래스는 하위클래스 보다 일반적인 개념과 기능을 가짐
하위클래스는 상위클래스 보다 구체적인 개념과 기능을 가짐

접근 제한자 (access modifier)

외부 클래스하위 클래스동일 패키지내부 클래스
publicOOOO
protectedXOOO
선언되지 않음 (default)XXOO
privateXXXO

상속 관계에서는 private 을 쓰지 않는다.

protected 는 필드와 생성자, 메소드 선언에 사용 될 수 있다.
변수와 메소드는 자신을 정의한 클래스와 그의 서브클래스, 같은 패키지 내의 다른 클래스에서 접근이 가능하다.
서브클래스는 메소드를 오버라이딩해 자신만의 구현을 수행하는 경우를 제외하고 기본클래스의 모든 public과 protected 메소드를 상속받고 기본 클래스의 생성자는 상속받지 못한다.

0개의 댓글