IT 개발노트

추상클래스 본문

기초튼튼/JAVA

추상클래스

limsungju 2019. 7. 3. 11:02

1. 추상클래스(abstract class)
1.1 추상클래스란?
- 클래스가 설계도라면 추상클래스는 '미완성 설계도'
- 추상메서드(미완성 메서드)를 포함하고 있는 클래스
* 추상메서드 : 선언부만 있고 구현부(몸통, body)가 없는 메서드
- 완성된 설계도가 아니므로 인스턴스를 생성할 수 없다.
- 다른 클래스를 작성하는 데 도움을 줄 목적으로 작성된다.
- 일반메서드가 추상메서드를 호출할 수 있다.(호출할 때 필요한 건 선언부)

abstract class Player {
    int currentPos; // 현재 Play되고 있는 위치를 저장하기 위한 변수
    
    Player() { // 추상클래스도 생성자가 있어야 한다.
        currentPos = 0;
    }
    
    abstract void play(int pos); // 추상메서드
    abstract void stop(); // 추상메서드
    
    void play() {
        play(currentPos); // 추상메서드를 사용할 수 있다.
    }
    ...
}

1.2 추상메서드란?
- 선언부만 있고 구현부(몸통, body)가 없는 메서드

/* 주석을 통해 어떤 기능을 수행할 목적으로 작성하였는지 설명한다. */
abstract 리턴타입 메서드이름();

Ex)
/* 지정된 위치(pos)에서 재생을 시작하는 기능이 수행되도록 작성한다. */
abstract void play(int pos);

- 꼭 필요하지만 자손마다 다르게 구현될 것으로 예상되는 경우에 사용
- 추상클래스를 상속받는 자손클래스에서 추상메서드의 구현부를 완성해야한다.

1.3 추상클래스의 작성
- 여러 클래스에 공통적으로 사용될 수 있는 추상클래스를 바로 작성하거나 기존클래스의 공통 부분을 뽑아서 추상클래스를 만든다.

-> Marine, Tank, Dropship 클래스에서 공통된 부분을 Uit클래스라는 추상클래스로 만들고 움직이는 방법이 다른걸 고려하여 move메서드를 추상메서드로 만들어 Marine, Tank, Dropship클래스에서 각각 지정하게 만들어 사용할 수 있다.

'기초튼튼 > JAVA' 카테고리의 다른 글

예외처리  (0) 2019.07.04
인터페이스  (0) 2019.07.04
다형성  (0) 2019.07.02
제어자  (0) 2019.07.01
package와 import  (0) 2019.06.09