상속(Inheritance)
- 객체의 필드와 메서드를 다른 객체가 물려받을 수 있는 기능
- 상속은 화살표가 부모 클래스를 가리킴 ex. 동물 ⇽ 사람 (자식 클래스는 부모 클래스가 1개여야 함)
- 부모 클래스가 할 수 없는 것들을 자식 클래스에서 하기 위한 기능
- Is a 관계 : 상속 관계에서만 표현 가능 (동물은 동물이다(O), 동물은 인간이다(X) vs 인간은 인간이다, 인간은 동물이다(O) <> has a 관계 : 자동차(엔진, 바퀴, 주유구 등) 그냥 자동차가 가지고 있는 것 (포함관계)
1. 장점
- 기존의 클래스를 사용함으로써 재사용성을 높이고 코드의 중복을 줄여 코드가 간결해짐
- 부모 클래스를 상속받는 여러 개의 자식 클래스에서 사용 가능하므로 확장성이 용이
2. 주의할점
- 여러 개의 클래스를 상속할 수 없음(단 하나의 클래스만 부모 클래스로 설정가능)
- 접근 지정자 private를 갖는 필드와 메서드는 상속 불가
3. 메서드 오버라이딩(Overriding)
- 상위 클래스가 가지고 있는 메서드를 상속 관계의 하위 클래스의 메서드에서 재정의하여 사용한느 것
- 자바에서 자식 클래스는 부모 클래스의 private 멤버를 제외한 모든 메서드를 상속받는데, 이렇게 상속받은 메서드는 그대로 사용해도 되고, 필요한 동작을 위해 재정의하여 사용할 수도 있다. (구현 내용을 자식 클래스에서 변경 = 덮어 쓰는 것)
* 오버라이딩 조건 = 메서드 구조가 정확히 일치해야 함
- 부모-자식(즉, 상속) 관계 에서만 성립
- 파라미터의 개수, 타입 & 리턴 타입이 일치 (안의 내용만 바뀌쓸 수 있음)
- 접근 지정자는 부모 <= 자식
'이론 공부' 카테고리의 다른 글
서블릿과 JSP의 차이 (0) | 2023.03.07 |
---|---|
추상화 (0) | 2023.03.02 |
클라이언트/서버 (0) | 2023.02.09 |
자바 기초 내용 정리 (1) | 2023.02.01 |
클래스와 객체 (1) | 2023.01.26 |