JAVA

[OOP] 추상클래스

ewok 2023. 3. 8. 14:54

추상클래스

클래스가 설계도라면, 추상클래스는 미완성 설계도라고 할 수 있으며 미완성 메서드를 포함하고 있다.

 

  • 추상클래스로는 인스턴스를 생성할 수 없다.
  • 다른 클래스를 작성하는 데 도움을 주기 위해 작성된다.
abstract class 클래스명 {
	...
}

 

추상메서드

선언부만 작성하고 구현부는 작성하지 않은 채로 남겨둔 미완성 메서드

 

  • 꼭 필요하지만 자손마다 다르게 구현될 것으로 예상되는 경우에 사용한다.
  • 추상클래스를 상속받는 자손클래스에서 추상메서드의 구현부를 완성해야 한다.
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) { ... }	// 추상메서드를 구현
}

 

 

추상클래스의 작성

여러 클래스에 공통적으로 사용될 수 있는 추상클래스를 바로 작성하기도 하고, 기존의 클래스의 공통적인 부분을 뽑아서 추상클래스로 만들기도 한다.

 

추상화    클래스 간의 공통점을 찾아내서 공통의 조상을 만드는 작업
구체화    상속을 통해 클래스를 구현, 확장하는 작업