0%

추상메서드

추상클래스(abstract class)

  • 미완성 설계도. 미완성 메서드를 갖고 있는 클래스
1
abstract class Player{ // 추상클래스(미완성 클래스)
2
  abstract void play(int pos); // 추상메서드(몸통{}이 없는 미완성 메서드)
3
  abstract void stop(); // 추상메서드
4
}
  • 다른 클래스 작성에 도움을 주기 위한 것. 인스턴스 생성 불가
1
Player p = new Player(); // 에러. 추상 클래스의 인스턴스 생성 불가
  • 상속을 통해 추상 메서드를 완성해야 인스턴스 생성가능
  • 구현: 상속한 추상메서드의 몸통{}을 채워주는 것
1
class AudioPlayer extends Player {
2
  void play(int pos) {
3
    /* 내용생략 */
4
  } // 추상메서드를 구현
5
  void stop(){
6
    /* 내용 생략 */
7
  }
8
} // 추상메서드를 구현
9
10
AudioPlayer ap = new AudioPlayer(); // OK

추상 메서드(abstract method)

  • 미완성 메서드. 구현부(몸통{}가 없는 메서드
  • 꼭 필요하지만 자손마다 다르게 구현될 것으로 예상되는 경우 / 꼭 사용해야하는 강제성부여기능도 있음
1
abstract 리턴타입 메서드이름();
1
abstract class Player {
2
  abstract void play(int pos);
3
  abstract void stop();
4
}
5
6
class AudioPlayer extends Player {
7
  void play(int pos){/* 내용생략 */}
8
	void stop(){/* 내용생략 */}
9
}
10
11
abstract class AbstractPlayer extends Player {
12
  void play(int pos){/* 내용생략 */} // 추상메서드를 1개만 구현. 미완성.
13
}

image