무룩 공부방

[Java02] 24. 추상 클래스(Abstract Class) (Eclipse) 본문

IT/Java02_Intermediate

[Java02] 24. 추상 클래스(Abstract Class) (Eclipse)

moo_look 2023. 10. 7. 20:39

# 추상 클래스(Abstract Class)

  • 멤버변수, 기본생성자, 매개변수가 있는생성자, 일반 메서드, 추상메서드를 포함 할 수 있다. 
  • 추상 클래스는 상속을 통해 추상 메서드를 재정의(오버라이딩)해서 구현부를 완성해야 객체 생성이 가능하다.
  • 미완성 설계도. 미완성(추상) 메서드를 포함한 클래스
  • 추상 클래스는 인스턴스(객체) 생성 불가
  • 추상 클래스를 객체 생성을 해서 사용하려면 상속을 통해 추상 메서드를 완성해야 인스턴스 생성이 가능
  • 추상 클래스는 추상 메서드 포함하고 있는 것을 제외하고는 일반 클래스와 같다

 

# 추상 메서드(Abstract Method)

  • 미완성 메서드. 선언부만 있고 구현부가 없는 메서드
  • 키워드 abstract를 사용


package java02_intermediate;

abstract class Player { 
	
	String name; 
	String song;
	
	public Player() {} 
	
	public Player(String name, String song) {
		this.name = name;
		this.song = song;
	}
	
	public void print() { 
		System.out.println("name : "+name+"song : "+song);
	}
	
	abstract void play(int post); 
	
	abstract void stop();
	
}


class AudioPlayer extends Player {
	@Override 
	void play(int post) {
		System.out.println(post + "번 위치 부터 play 합니다.");
	}
	@Override 
	void stop() {
		System.out.println("정지 했어요.");
	}
}

public class Java24_Abstract { 

	public static void main(String[] args) { 
		
		AudioPlayer audioPlayer = new AudioPlayer();
		
		audioPlayer.play(100); 
		audioPlayer.stop();
		
	}

}