FIF's 코딩팩토리

패스트캠퍼스 챌린지 31일차 본문

패스트캠퍼스 챌린지

패스트캠퍼스 챌린지 31일차

FIF 2022. 2. 23. 17:06
반응형

상속은 언제 사용할까?

 

자바에서 상속은 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");
			}
		
		}
}

 

 

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr



 

반응형
Comments