객체지향 프로그래밍 언어의 특징
자바 뿐만 아니라 다른 언어에서도(C++. C#, Python 등) 쓰임
class B extends A {
}
= A를 확장을 한다의 의미로 extends를 사용
= A의 기능을 B가 상속한다.
= B클래스가 A클래스에게 상속을 받는다.
상위클래스(A), 하위클래스(B)
상속하는 클래스(상위) : parent class, base class, super class
상속받는 클래스(하위) : child class, derived class, sub class
상위클래스는 하위클래스 보다 일반적인 개념과 기능을 가짐
하위클래스는 상위클래스 보다 구체적인 개념과 기능을 가짐
외부 클래스 | 하위 클래스 | 동일 패키지 | 내부 클래스 | |
---|---|---|---|---|
public | O | O | O | O |
protected | X | O | O | O |
선언되지 않음 (default) | X | X | O | O |
private | X | X | X | O |
상속 관계에서는 private 을 쓰지 않는다.
protected 는 필드와 생성자, 메소드 선언에 사용 될 수 있다.
변수와 메소드는 자신을 정의한 클래스와 그의 서브클래스, 같은 패키지 내의 다른 클래스에서 접근이 가능하다.
서브클래스는 메소드를 오버라이딩해 자신만의 구현을 수행하는 경우를 제외하고 기본클래스의 모든 public과 protected 메소드를 상속받고 기본 클래스의 생성자는 상속받지 못한다.