본문 바로가기
Java

Java - 객체지향 - 추상화 , 추상클래스 ,추상 메서드

by 달보드레. 2020. 5. 18.

추상화 : 서비스 집중화 (캡슐 단위의 공통 서비스)

 

추상클래스를 만드는 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