추상클래스
클래스가 설계도라면, 추상클래스는 미완성 설계도라고 할 수 있으며 미완성 메서드를 포함하고 있다.
- 추상클래스로는 인스턴스를 생성할 수 없다.
- 다른 클래스를 작성하는 데 도움을 주기 위해 작성된다.
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) { ... } // 추상메서드를 구현
}
추상클래스의 작성
여러 클래스에 공통적으로 사용될 수 있는 추상클래스를 바로 작성하기도 하고, 기존의 클래스의 공통적인 부분을 뽑아서 추상클래스로 만들기도 한다.
추상화 클래스 간의 공통점을 찾아내서 공통의 조상을 만드는 작업
구체화 상속을 통해 클래스를 구현, 확장하는 작업
'JAVA' 카테고리의 다른 글
[OOP] 내부 클래스(inner class) (0) | 2023.03.08 |
---|---|
[OOP] 인터페이스(interface) (0) | 2023.03.08 |
[OOP] 다형성(polymorphism) (0) | 2023.03.08 |
[OOP] 제어자(modifier) (0) | 2023.03.07 |
[OOP] package와 import (0) | 2023.03.07 |