728x90
- 포함관계
클래스 A, B, C, D를 클래스 N에 포함시키고자 할 때
클래스 N에 클래스 A의 변수 a, B의 변수 b, ... 를 선언한다.
클래스 N의 생성자를 선언하면서 매개변수를 (A a, B b, C c, D d)으로 받고 this.a = a; this.b = b; 로 각각 저장한다.
이후 클래스 N에서 변수 a, b, c, d의 메서드를 사용한다.
- ABCD의 공통된 부분으로 추상 클래스 M을 생성(추상화)
ABCD의 공통된 함수를 추상 메서드 e로 만든다.
각 A, B, C, D가 M을 상속받고 각각 클래스 내에서 추상 메서드 e를 재정의한다.
클래스 N에 a, b, c, d 대신 추상 클래스 M의 변수 m을 선언한다.
클래스 N의 생성자의 매개변수로 (M m)을 받고 this.m = m;으로 대입한다.
다형성을 이용해 M 내에서 A, B, C, D 간의 변경을 위해 N 클래스 내부에 생성자와 같은 내용인 set 메서드를 생성한다.
클래스 N에서 재정의된 추상 메서드는 m.e();와 같이 사용한다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
열거 타입(Enum) (0) | 2023.10.20 |
---|---|
정규표현식 (0) | 2023.10.17 |
추상 클래스와 인터페이스 비교 (0) | 2023.10.16 |
자주 쓰는 함수 (0) | 2023.10.10 |
자료형 String (0) | 2023.09.21 |