abstract class Player { //추상 클래스 (미완성 클래스)
abstract void play(int pos); // 추상 메서드 (몸통{} 이 없는 미완성 메서드)
abstract void stop(); // 추상 메서드
}
Player p = new Player(); // 에러. 추상 클래스의 인스턴스 생성 불
class AudioPlayer extends Player {
void Play(int pos) {/* 내용 생략 */} //추상 메서드를 구현(몸통{} 만들어줌)
void stop() {/* 내용 생략 */} //추상 메서드를 구현
}
AudioPlayer ap = new AudioPlayer(); // ok 인스턴스 생성 ok
abstract class Plyer {
abstract void play(int pos); // 추상 메서드 (몸통{} 이 없는 미완성 메서드)
abstract void stop(); // 추상 메서드
}
class AudioPlayer extends Player {
void Play(int pos) {/* 내용 생략 */} //추상 메서드를 구현(몸통{} 만들어줌)
void stop() {/* 내용 생략 */} //추상 메서드를 구현
}
abstract class AbstactPlayer extends Player { // 1개만 구현해서(2개를 상속 받았는데) abstract 붙여줌
void Play(int pos) {/* 내용 생략 */} //추상 메서드를 구현(몸통{} 만들어줌)
}
abstract class Player {
boolean pause;
int currentPos;
Player() { // 추상 클래스도 생성자가 있어야 한다.
pause = false;
currentPos = 0;
}
}
abstract void play (int pos); // 추상 메서드
abstract void stop (); // 추상 메서드
void play() {
play(currentPos); // 추상 메서드를 호출 할 수 있다
}
ex. PlayerTest
abstract class Player { // 추상 클래스
abstract void play(int pos); // 추상 메서드
abstract void stop(); //추사 메서드
}
class AudioPlayer extends Player {
void play(int pos) {(System.out.println(pos+"위치부터 play 합니다.");}
void stop() {(System.out.println("재생을 멈춥니다.");}
}
public class PlayerTest {
public static void main(String[] args) {
Player ap = new AudioPlayer(); // 다형성
ap.play(100);
ap.stop();
}
}
Player ap = new AudioPlayer();