상속
- 상속
- 상속의 표현식
- 단일상속과 다중상속
- super()와 super.
상속
상속 | 다른 클래스가 가지고 있는 멤버(필드,메소드)들을 새로 작성하지 않고 상속을 받음으로서 새 클래스가 자신의 멤버처럼 사용할 수 있는 기능 |
상속의 목적 | 클래스의 재사용, 연관된 클래스들에 대한 공통적인 규약 정의 |
상속의 장점 | 1. 적은 양의 코드로 새로운 클래스 작성 가능 2. 코드를 공통적으로 관리하기 때문에 코드 추가 및 변경 용이 3. 코드 중복 제거하여 생산성 및 유지보수에 기여 |
상속의 특징 | 1. 모든 클래스는 Object클래스의 후손 - object클래스가 제공하는 메소드를 오버라이딩 하여 메소드 재구현 가능 -ex) java.lang.String 클래스의 equals(), toString() 2. 부모클래스의 생성자, 초기화 블록은 상속 안 됨 - 자식 클래스 생성시, 부모 클래스 생성자가 먼저 실행 - 자식 클래스 생성자 안에서 부모 클래스 생성자 호출을 명시하고 싶으면 super() 활용 3. 부모의 private멤버는 상속은 되지만 직접 접근 불가 -자식 객체 생성 시에 부모의 필드 값도 전달 받은 경우, 자식 생성자 안에서 부모의 private 필드에 직접 접근하여 대입 불가 -super()를 이용하여 전달 받은 부모 필드 값을 부모 생성자 쪽으로 넘겨서 생성하거나 getter, setter 메소드를 이용하여 접근 |
상속의 표현식
클래스 간의 상속 시에는 extends 키워드 사용
[접근제한자] class 자식클래스명 extends 부모클래스명 {}
ex)
public class child extends super {}
단일상속과 다중 상속
- 단일상속: 클래스간의 관계가 다중 상속보다 명확하고 신뢰성 있는 코드 작성(java에서는 단일 상속만 지원)
- 다중상속: C++에서 가능한 기능. 여러 클래스로부터 상속 받으며 복합 기능 클래스 쉽게 작성 가능
super()와 super
super() | - 부모 객체의 생성자 호출 메소드. 기본적으로 후손 생성자에 부모 생성자 포함 - 후손 객체는 부모부터 생성되기 때문에 후손 클래스 생성자 안에는 부모 생성자를 호출하는 super()가 첫줄에 존재(부모 생성자가 가장 먼저 실행되어야 하기 때문에 반드시 첫 줄에만 작성) - 매개변수 있는 부모 생성자 호출은 super(매개변수, 매개변수)를 넣으면 됨 |
super. | - 상속을 통한 자식 클래스 정의 시 해당 자식 클래스의 부모 객체를 가리키는 참조변수 - 자식 클래스 내에서 부모 클래스 객체에 접근하여 필드나 메소드 호출 시 사용 |
'Java > Java 개념' 카테고리의 다른 글
17. 다형성(Polymorphism) (0) | 2022.10.04 |
---|---|
16. 오버라이딩(Overriding)과 오버로딩(Overloading) (0) | 2022.10.02 |
14. 객체 배열 (0) | 2022.10.02 |
13. 메소드(Method) (0) | 2022.10.02 |
12. 생성자(constructor) (0) | 2022.10.02 |