본문 바로가기

개발

Java - 추상클래스

반응형


추상클래스(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