*미완성 설계도
abstract class Player { // 추상클래스 (미완성클래스)
abstract void play(int pos); // 추상메서드(몸통{}이 없는 미완성 메서드)
abstract void stop(); // 추상메서드
}
*다른 클래스 작성에 도움주기위한 것, 인스턴스 생성불가
Player p = new Player(); // 에러, 추상 클래스의 인스턴스 생성불가
완성된 설계도 추상클래스
class AudioPlayer extends Play
void play(int pos) { } // 추상메서드를 구현
구현 = 추상 메서드 몸통{} 만들기
AudioPlayer ap = new AudioPlayer(); // 완성된 설계도 , 인스턴스 생성O
Player 도 가능
*추상 메서드
미완성 메서드, 구현부(몸통, {})가 없는 메서드
abstract 리턴타입 메서드이름();
abstract class AbstractPlayer extends Player {
void play(int pos) { } // 추상 메서드 구현
조상에서 2개의 추상메서드를 상속받았으면 자손도 추상메서드를 2개 써야지
abstract 를 안 쓸수 있다.
ex)
abstract class Player { // 추상 클래스
abstract void play(int pos); // 추상 메서드
abstract void stop(); // 추상 메서드
class AudioPlayer extends Player {
void play(int pos){
System.out.println(pos + "위치부터 play");
}
요 부분이 없으면 AudioPlayer 앞에 abstract 붙여야함
void stop() {
System.out.println("멈춥니다");
}
}