Java

70. 추상 클래스, 추상 메서드 - 패스트캠퍼스 백엔드 부트캠프 3기

gkss2tpt 2024. 12. 23. 12:17

1. 추상 클래스(abstract class)

  • 미완성 설계도, 미완성 메서드를 갖고 있는 클래스
abstract class Player {			// 추상클래스(미완성 클래스)
    abstract void play(int pos);	// 추상메서드(몸통{}이 없는 미완성 메서드)
    abstract void stp();		// 추상메서드
}
  • 다른 클래스 작성에 도움을 주기 위한 것(인스턴스 생성 불가)
Player p = new Player();	// 에러 추상 클래스의 인스턴스 생성 불가

class AudioPlayer extends Player {
    void player(int pos) { /* 내용 생략 */ }	// 추상메서드를 구현
    void stop() { /* 내용 생략 */ }		// 추상메서드를 구현
}

AudioPlayer ap = new AudioPlayer();	// OK.

 

2. 추상 메서드(abstract method)

  • 미완성 메서드, 구현부(몸통, {})가 없는 메서드
abstract 리턴타입 메서드이름();	// 추상메서드
// 꼭 필요하지만 자손마다 다르게 구현될 것으로 예상되는 경우

abstract class Player {	// 추상 클래스
    abstract void play(int pos);	// 추상 메서드
    abstract void stop();		// 추상 메서드
}

class AudioPlayer extends Player {
    void play(int pos) { /* 내용 생략 */ }	// 추상 메서드를 구현
    void stop() { /* 내용 생략 */ }		// 추상 메서드를 구현
}

abstract class AbstractPlayer extends Player {
    void play(int pos) { /* 내용 생략 */ }	// 추상 메서드를 구현
    // 물려받은 메서드를 모두 사용하지 않아 미완성임을 알리는 abstract class
}