일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 스프링
- 패캠챌린지
- DesignPattern
- 자바예제
- javabasic
- java기초
- 리눅스
- 재택근무
- 자바기본
- String
- 웹
- js
- 자바
- 패스트캠퍼스
- 디자인
- 국비
- Spring
- DB
- 데이터베이스
- 직장인인강
- 패스트캠퍼스후기
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- 자바기초
- 디자인패턴
- 자바연습문제
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- java
- ncs
- linux
- 직장인자기계발
Archives
- Today
- Total
FIF's 코딩팩토리
패스트캠퍼스 챌린지 31일차 본문
반응형
상속은 언제 사용할까?
자바에서 상속은 IS-A 관계 일 때 사용한다.
IS-A 관계(is a relationship : inheritance)란 다음과 같다.
1. 일반적인(general) 개념과 구체적인(specific) 개념과의 관계
2. 상위 클래스 : 하위 클래스보다 일반적인 개념 ( 예: Employee )
3. 하위 클래스 : 상위 클래스보다 구체적인 개념들이 더해짐 ( 예: Engineer, Manager...)
4. 상속은 클래스간의 결합도가 높은 설계
5. 상위 클래스의 수정이 많은 하위 클래스에 영향을 미칠 수 있음
6. 계층구조가 복잡하거나 hierarchy가 높으면 좋지 않음
그리고 HAS-A관계일 경우에도 사용한다.
HAS-A 관계(composition)란 다음과 같다.
1. 클래스가 다른 클래스를 포함하는 관계 ( 변수로 선언 )
2. 코드 재사용의 가장 일반적인 방법
3. Student가 Subject를 포함하는
4. Library를 구현할 때 ArrayList 생성하여 사용
5. 상속하지 않음
다운 캐스팅과 instanceof
다운캐스팅이란 업캐스팅된 클래스를 다시 원래의 타입으로 형변환 하는것을 말한다.
하위 클래스로의 형 변환은 명시적으로 해야 한다.
instanceof를 이용하여 인스턴스의 형 체크
원래 인스턴스의 형이 맞는지 여부를 체크하는 키워드가 맞으면 true 또는 false를 반환한다.
AnimalTest.java
public void testDownCasting(ArrayList<Animal> list) {
for(int i =0; i<list.size(); i++) {
Animal animal = list.get(i);
if ( animal instanceof Human) {
Human human = (Human)animal;
human.readBooks();
}
else if( animal instanceof Tiger) {
Tiger tiger = (Tiger)animal;
tiger.hunting();
}
else if( animal instanceof Eagle) {
Eagle eagle = (Eagle)animal;
eagle.flying();
}
else {
System.out.println("error");
}
}
}
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
반응형
'패스트캠퍼스 챌린지' 카테고리의 다른 글
패스트캠퍼스 챌린지 33일차 (0) | 2022.02.25 |
---|---|
패스트캠퍼스 챌린지 32일차 (0) | 2022.02.24 |
패스트캠퍼스 챌린지 30일차 (0) | 2022.02.22 |
패스트캠퍼스 챌린지 29일차 (0) | 2022.02.21 |
패스트캠퍼스 챌린지 28일차 (0) | 2022.02.20 |
Comments