STUDY/JAVA

[JAVA] 추상

aftersep 2022. 4. 3. 01:02

추상 클래스

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