추상 클래스
abstract class
클래스를 설계도에 비유한다면 추상클래스는 미완성 설계도이다. 클래스가 미완성이라는 것은 멤버의 개수에 관계된 것이 아니라, 단지 미완성 메서드(추상 메서드)를 포함하고 있다는 의미이다. 추상클래스 자체로는 클래스로서의 역할을 다 못하지만 새로운 클래스를 작성하는데 있어 바탕이 되는 조상클래스로서 중요한 의미를 갖는다.
추상화: 클래스간의 공통점을 찾아내어 공통의 조상을 만드는 작업
구체화: 상속을 통해 클래스를 구현, 확장하는 작업
추상클래스의 작성
abstract class 클래스이름 {
;;
} // end class
추상클래스에도 생성자가 있으며 멤버변수와 메서드도 가질 수 있다.
추상 메서드
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) { ;; }
}
추상클래스로부터 상속받는 자손클래스는 오버라이딩을 통해 조상인 추상클래스의 추상메서드를 모두 구현해주어야 한다. 만일 조상으로부터 상속받은 추상메서드 중 하나라도 구현하지 않는다면 자손클래스 역시 추상클래스로 지정해주어야 한다.
참고문헌: 자바의 정석
'STUDY > JAVA' 카테고리의 다른 글
[JAVA] 제네릭(지네릭스) Generics (0) | 2022.04.06 |
---|---|
[JAVA] 예외 (0) | 2022.04.03 |
[JAVA] 다형성 (0) | 2022.04.02 |
[JAVA] 인터페이스 (0) | 2022.03.31 |
[JAVA] 제어자 (0) | 2022.03.30 |