미완성 설계도. 미완성 메서드를 갖고 있는 클래스
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() { /* 내용 생략 */ } // 추상메서드를 구현
}
예제
abstract class Player { // 추상클래스 (미완성 클래스, 미완성 설계도)
abstract void play(int pos); // 추상 메서드(미완성 메서드)
abstract void stop(); // 추상메서드(선언부만 있고 구현부{}가 없는 메서드
}
// 추상 클래스는 상속을 통해 완성해야 객체 생성가능
class AudioPlayer extends Player{
@Override
void play(int pos) { System.out.println(pos + "위치부터 play합니다.");}
@Override
void stop() {System.out.println("재생을 멈춥니다.");}
}
public class PlayerTest {
public static void main(String[] args) {
// Player p = new Player(); // 추상 클래스의 객체를 생성 에러
AudioPlayer ap = new AudioPlayer();
ap.play(100);
ap.stop();
}
}
'JAVA' 카테고리의 다른 글
컬렉션 프레임웍 List (0) | 2022.09.27 |
---|---|
컬렉션 프레임웍(collection framework) (0) | 2022.09.27 |
객체지향 매개변수의 다형성 예제 (0) | 2022.09.26 |
객체지향 instanceof 연산자 (0) | 2022.09.26 |
객체지향 참조변수의 형변환 (1) | 2022.09.26 |