is - a / has - a 관계

Mia Lee·2021년 12월 7일
0

JAVA

목록 보기
65/98
package ex_inheritance;

public class Ex2 {

	public static void main(String[] args) {

		/*
		 * 객체 지향적 관점에서의 is-a / has-a 차이점
		 * 1) is-a 관계
		 *   - 상속 관계(밀접하게 결합)
		 *   - 상위 클래스의 기능을 하위 클래스가 물려받아 사용
		 *   - 클래스 계층구조에서 좀 더 안정적인 기반을 마련
		 *   - 상속 관계를 통해 생성된 클래스 및 객체는 상속관계에서 밀접하게 결합되므로
		 *     부모 클래스의 변경이 발생하면 코드가 손상될 위험이 발생
		 *     
		 * 2) has-a 관계
		 *   - 포함 관계(느슨한게 결합)
		 *   - 상속에 비해서 변경이 발생하더라도 구성 요소를 쉽게 변경
		 *     (코드의 손상이 적거나 없다는 의미)
		 *   - 많은 유연성을 제공
		 *     
		 */
		
	}

}

class Person {}

class Spider {}

class SpiderMan extends Person { // Person 클래스를 상속 -> is-a 관계
	
	Spider spider = new Spider();
	// Spider 타입의 변수를 통해 Spider 클래스의 멤버를 관리 -> has-a 관계
	
}




0개의 댓글