Inherit
Overriding
Overload
부모 클래스(상위 클래스)의 속성과 메소드를 자식 클래스(하위 클래스)가 상속받아 사용할 수 있게 해주는 객체 지향 기법
→ 코드의 재사용성과 확장성을 높여주는 핵심적인 문법
클래스의 재사용, 연관된 일련의 클래스들에 대한 공통적인 규약 정의
"A는 B다"라는 뜻, 자식 클래스가 부모 클래스를 상속받는 관계이다. 이 때 부모의 클래스는 자식보다 더 추상적으로 설계되어야 한다. (사람 -> 학생, 직장인, 사용자 등등)
예시) 학생은 사람이다. / 사과는 과일이다. / 토끼는 동물이다. 역으로는 성립되지 않는다
class Animal {}
class dog extends Animal {}
"A는 B를 포함한다"라는 뜻으로 A 클래스 안에 B 클래스 타입의 필드가 있는 포함 관계
이 때 A는 B보다 넓은 범위를 가져야한다
예시) 교실엔 책상이 있다. / 숲엔 나무가 있다. / 사람이 폰을 가지고 있다.
포함되는 객체를 멤버 변수로 선언
class Engine()
class Car {
private Engine engine;
super() 생략 가능 (자동 삽입)super(파라미터) 명시 필요this()를 쓰는 경우 super()를 쓸 수 없음private, final 메소드는 오버라이딩할 수 없습니다.@Override 어노테이션 명시가 권장됩니다.super() 부모 클래스의 생성자 호출, 자식 생성자에서 가장 첫 줄에 사용 (명시하지 않으면 자동 생성)super. 부모 클래스의 메소드나 필드에 접근하는 키워드 (오버라이드 되어도 부모 메소드 호출이 가능)