상속(inheritance)이란?
- 기존의 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것
- 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나
- 기존에 정의되어 있는 클래스의 모든 필드와 메소드를 물려받아 새로운 클래스를 생성할 수 있다.
- 관련 용어
- 부모 클래스(parent class) or 상위 클래스(super class) or 기초 클래스(base class)
- 기존에 정의되어 있던 클래스
- 자식 클래스(child class) or 하위 클래스(sub class) or 파생 클래스(derived class)
- 상속을 통해 새롭게 작성되는 클래스
- 부모 클래스(parent class) or 상위 클래스(super class) or 기초 클래스(base class)
상속의 장점
- 기존에 작성된 클래스를 재활용 가능
- 자식 클래스 설계 시 중복되는 멤버를 미리 부모 클래스에 작성해 놓으면
자식 클래스에서는 해당 멤버를 작성하지 않아도 된다. - 클래스 간의 계층적 관계를 구성함으로써 다형성의 문법적 토대를 마련
사용 방법
super 참조 변수
- 부모 클래스로부터 상속받은 필드나 메소드를 자식 클래스에서 참조하는 데 사용하는 참조 변수
- 인스턴스 변수의 이름과 지역 변수의 이름이 같을 경우 인스턴스 변수 앞에 this 키워드를 사용하여 구분 가능
- 부모 클래스의 멤버와 자식 클래스의 멤버 이름이 같을 경우 super 키워드를 사용하여 구별 가능
- 부모 클래스의 멤버에 접근할 수 있습니다.
- 인스턴스 메소드에만 사용할 수 있다.
- 클래스 메소드에서는 사용할 수 없다.
- 사용 예시
super() 메소드
- 부모 클래스의 생성자를 호출하는 메소드