abstract class Player{ // Player 추상 클래스
abstract void play(int pos); // play 추상 메서드
abstract void stop(); // stop 추상 메서드
}
class AudioPlayer extends Player{
void play(int pos){ // play 추상 메서드 구현
System.out.println(pos+" 위치에서 재생 시작합니다.");
}
void stop(){ // stop 추상 메서드 구현
System.out.println("재생을 일시정지 합니다.");
}
}
public class JavaExercise_38 { // 추상 클래스, 추상 메서드
public static void main(String[] args) {
// AudioPlayer audioPlayer = new AudioPlayer();
Player audioPlayer = new AudioPlayer(); // AudioPlayer 클래스가 Player 클래스를 상속 받았기 때문에 다형성을 활용해 Player 타입의
audioPlayer.play(50); // audioPlayer 참조변수로도 AudioPlayer 클래스의 멤버 사용 가능
audioPlayer.stop();
}
}
출력 결과 :
50 위치에서 재생 시작합니다.
재생을 일시정지 합니다.
위의 코드는 Player 라는 추상 클래스를 만들고 클래스내에 play,stop 추상 메서드를 만든 후에 AudioPlayer 클래스가 추상 클래스 Player를 상속 받아 play,stop 추상 메서드를 구현하고 AudioPlayer의 인스턴스를 생성하여 구현한 메서드를 사용하는 코드 입니다. AudioPlayer 클래스가 Player 클래스를 상속 받았기 때문에 다형성을 활용해 Player 타입의 audioPlayer 참조변수로도 AudioPlayer 클래스의 멤버를 사용하는데 문제가 없는것을 확인 할 수 있습니다.