카테고리 없음
상속 (장/단점)
상똥
2024. 1. 15. 16:31
[상속(inheritance)]
1. 개념 및 특징
- 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것
2. 사용방법
- 새로 사용하고자 하는 클래스(하위클래스)의 이름 뒤에 상속받고자 하는 클래스(상위클래스)의 이름을 키워드 'extends'와 함께 쓰기
- 예시
class point {
}
class circle extends point {
}
class point {
int x;
int y;
}
class circle extends point {
int r
}
3. 포함관계와의 비교
- 포함관계 : ~을 가지고 있다
class circle {
point c = new point();
int r;
}
- 상속관계 : ~은 이다
class circle extends point {
int r;
}
4. 장점
(1) 코드의 확장성 및 재사용성 상승, 중복된 코드 제거 가능
- 기존 클래스에서 정의한 메서드와 변수를 새로운 클래스에서 재사용
- 새로운 클래스에서는 이미 작성된 코드를 그대로 사용하거나 필요에 맞게 수정하여 확장
(2) 객체지향 프로그래밍에서의 다형성
- 상속을 통해 다형성 구현
- 부모 클래스 타입으로 선언된 변수는 해당 부모 클래스 및 그의 모든 하위 클래스의 객체를 참조
- 코드의 유연성을 높이고 코드를 더 간결하게 만듦
5. 단점
(1) 캡슐화에 영향
- 부모 클래스의 구현에 따라 자식 클래스의 구현에 영향이 감
- 부모 클래스의 이상도 자식 클래스가 상속하게 됨
(2) 부모 클래스의 필드와 메서드를 찾는데 불편함이 있음
- 자식 클래스에서 부모 클래스의 필드와 메서드는 보이지 않음
- 직접 찾아서 확인하는 방법밖에 없음