추상화 : 서비스 집중화 (캡슐 단위의 공통 서비스)
추상클래스를 만드는 2가지 상황
1. 개체들의 공통 서비스를 집중화
> 장점 : 코드 집중화, 일괄적으로 처리

2. 향후 제품을 위한 프레임워크

- 추상클래스는 공통 자료형

Shape[] shapes = new Shape[10];
shapes[0] = new Circle();
shapes[1] = new Rect();
shapes[2] = new Line();
.
.
.
for(int ...)
shapes[i].move();

Shape[] shapes = new Shape[10];
shapes[0] = new Circle();
shapes[1] = new Rect();
shapes[2] = new Line();
.
.
.
public void paint(){
for(int....)
shapes[i].paint();
}
---------------------------------------------------
shapes[i].paint();
* paint(); > 오류
?? : Shape가 가지고 있는 범주내에는 paint가 없음

> 메서드의 뼈대가 되는 형태만 - 추상메서드
paint()를 Shape에 추가
/****************************************/
public void paint(){
for(int....)
shapes[i].paint();
}
> 이후 paint(); 오버라이드 되면서 정상 실행
추상 메서드 : 공통으로 제공되어야 할 서비스


>> 캡슐 단위의 공통 기능의 집중화
'Java' 카테고리의 다른 글
| Java Collection Framework - HashMap (0) | 2020.05.18 |
|---|---|
| Java - Java Collection Framework (0) | 2020.05.18 |
| Java - 호출되는 함수의 위치 (0) | 2020.05.18 |
| Java - 생성자 오버로드 (0) | 2020.05.18 |
| Java - ArrayList (0) | 2020.05.18 |