✅ 추상클래스 ✅ 추상메서드 ✅ abstract
추상메서드(미완성 메서드)를 포함하고 있는 클래스
선언부만 있고 구현부(body)가 없는 메서드
(즉, 설계만 해놓고 실제 수행될 내용은 작성하지 않은 상태)
abstract class Player{
int currentPos;
Player(){ // 추상클래스도 생성자가 있어야 함
currentPos=0;
}
abstract void play(int pos); // 추상메서드
abstract void stop(); // 추상메서드
void play(){ // 일반메서드
play(currentPos); // 추상메서드 호출
}
}
abstract class Player{
...
abstract void play(int pos); // 추상메서드
abstract void stop(); // 추상메서드
...
}
class AudioPlayer extends Player{
void play(int pos); // 추상메서드 구현
void stop(); // 추상메서드 구현
}
abstract class AbstractPlayer extends Player{
void play(int pos); // 추상메서드 "일부만" 구현
}
추상클래스를 만드는 방법은 두가지가 있다.
- 공통적으로 사용될 수 있는 클래스를 바로 작성한다.
- 이미 작성된 기존 클래스들의 공통적인 부분을 뽑아서 추상클래스를 만들고, 기존 클래스들이 이를 상속하도록 한다.