상속
- 기존 클래스(부모 클래스, 슈퍼 클래스)의 기능(메서드 변수 등의 멤버요소)을 새 클래스(자식 클래스, 서브 클래스)에 사용하도록 함
- 자식과 부모 클래스의 관계를 Is-A 관계라고 한다.
- 하나의 부모 클래스(parent class)는 여러개의 자식 클래스(children)을 가질 수 있다.
- 하나의 클래스는 여러개의 클래스로부터 상속을 받을수는 없다.
class 자식클래스 extends 부모클래스 {
//멤버 요소
}
super
- 자식클래스가 부모클래스의 프로퍼티와 동일한 이름을 갖고 있을 때 사용,
자식 클래스의 메서드에서 부모 클래스의 변수와 메서드에 접근할 수 있는 명령어.
- 부모 클래스의 클래스 멤버 앞에 붙여서 사용
super()
- 부모 클래스의 생성자를 호출하는 명령어
자식 클래스 생성자 첫 행에 사용해야 한다.
( super()와 this()는 생성자 첫 행에 사용해야 하므로 함께 사용 불가능하다. )
- 바로 윗단계의 부모클래스 뿐아니라 부모의 부모 또 그 부모의 부모 클래스의 생성자를 모두 호출
- 자식 클래스의 생성자가 부모 클래스의 생성자를 명시적으로 호출하지지 않으면 자바 컴파일러는 부모 클래스의 매개변수가 없는 생성자를 자동을 호출한다.
(부모클래스에서 생성자가 오버로딩되면 자동으로 추가되지 않음)
메서드 오버로딩(Overloading)
- 메서드의 이름은 같고 매개변수의 유형과 개수가 다르도록 하는 것.
- 리턴값만을 다르게 갖는 오버로딩은 작성 할 수 없다.
메서드 오버라이딩(overriding)
- 부모 클래스의 메서드를 자식 클래스의 메소드로 정의하는 것.
- 오버라이딩의 조건
- 자손 클래스에서 오버라딩하는 메서드는 조상 클래스의 메서드와
이름이 같아야 함
매개변수가 같아야 함
반환타입이 같아야 함
- 예제

final 클래스
- 클래스 선언시 final 키워드를 class 앞에 붙이면 상속 불가능한 클래스가 된다.
final 메서드
- 메서드 선언시 final 키워드를 붙이면 오버라이딩 불가능한 메서드가 된다.