추상클래스(abstract class)
- 미완성 설계도. 미완성 메서드를 갖고 잇는 클래스
- 상속을 통해 추상 메서드를 완성해야 인스턴스 생성 가능
- 꼭 필요하지만 자손마다 다르게 구현될 것으로 예상되는 경우
abstract class Player { // 추상클래스(미완성 클래스)
abstract void play(int pos); // 추상메서드(몸통이 없는 미완성 메서드)
abstract void stop(); // 추상메서드
}
class AudioPlayer extends Player{
void play(int pos){};
void stop(){};
}
// 일부만 구현
// 부모에 있는 stop은 구현하지 않았으므로 추상 클래스로 만들어야 한다.
abstract class AbstractPlayer extends Player{
void play(int pos){}
}
//
abstract class Player { // 추상클래스(미완성 클래스)
boolean pause; // 일시정지 상태를 저장하기 위한 변수
int currentPos; // 현재 Play 되고 있는 위치를 저장하기 위한 변수
Player(){
pause = false;
currentPos = 0;
/* 지정된 위치(pos)에서 재생을 시작하는 기능이 수행하도록 작성되어야 한다. */
abstract void play(int pos);
/* 재생을 즉시 멈추는 기능을 수행하도록 작성되어야 한다. */
abstract void stop();
void play(){
play(currentPos); // 추상메서드를 사용할 수 있다.
}
}
'개발' 카테고리의 다른 글
Java - 내부 클래스(inner class) / 익명 클래스(anonymous class) (0) | 2021.06.05 |
---|---|
Java - 인터페이스 (0) | 2021.06.05 |
Java - 객체지향개념 (0) | 2021.05.30 |
Java - 배열 (0) | 2021.05.10 |
Java - 변수 (0) | 2021.05.05 |