여기서 상속은 인터페이스 상속을 제외한 구현상속을 의미한다. 상속을 사용할 때 고려햐야할 것(위험성) 상속은 같은 프로그래머가 통제하는 패키지에서는 안전하다. 즉, 외부에서 널리 사용(배포)된다면 상속은 위험 가능성이 많다. 상속은 캡슐화를 깨뜨린다. 하부 클래스에서 상위 클래스의 메소드를 제대로 사용하려면 상위 클래스의 메소드 구현을 잘 알고 있어야 한다. 상위 클래스 메소드 내부에서 호출하는 메소드가 무엇인지 알고 있어야 잘못된 사용을 막을 수 있다. (책에서는 HashSet의 addAll을 예시로 든다) public class InheritanceSet extends HashSet { private int addCount = 0; public InheritanceSet(){ } @Override p..
상속의 특징 private는 상속되지 않는다. abstract class는 new 키워드 사용으로 생성할 수 없다. 미완성 클래스이기 때문이다. 하지만, 생성자는 가질 수 있다. new로 직접 인스턴스 생성이 안되는 것이고 자식 클래스에서는 super()등으로 생성자 사용이 가능하다. 상속은 is-a 관계 즉, 계층구조일 때 사용된다. 포함관계가 될 때 사용한다. 상속을 사용한다는 것은 보통 abstract class를 사용을 의미하는 듯 하다. 일반클래스는 부모클래스로 사용되는 경우는 흔치 않은 듯 하다. 따라서 상속은 불완전한 클래스를 상속하여 완전하게 만드는 것(abstract를 구체화)을 의미한다. 상속은 캡슐화가 깨진다. 그 이유는 상속에서 오는 오류(메소드 오버라이드 등으로 일어나는 부수효과)..
- Total
- Today
- Yesterday
- 회고
- DB
- JPA
- TIL
- 우테코수업
- Transaction
- TCP/IP
- CS
- 코드스쿼드
- 인증
- 카카오
- JS
- java
- React
- 학습로그
- 알고리즘
- OS
- 내부코드
- 글쓰기미션
- 운영체제
- 모의면접준비
- Spring
- 객체지향
- python
- 월간회고
- javascript
- 개발공부일지
- 마스터즈코스
- 네트워크
- 우아한테크코스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |