(Java) 추상 클래스

Jayden·2023년 3월 20일

Java

목록 보기
30/35
  • 미완성 설계도. 미완성(추상) 메서드를 갖고 있는 클래스
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(); // 가능

예시 코드

package edu.kh.stock_market.data;

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 p = new Player();  //추상 클래스의 객체를 생성(불가)
        //AudioPlayer ap = new AudioPlayer();
        Player ap = new AudioPlayer(); // 다형성
        ap.play(100);
        ap.stop();
    }
}

0개의 댓글