본문 바로가기
Study/JAVA

[Java] 7-6. 추상클래스(abstract class)

by jeongwle 2022. 9. 6.
728x90
반응형

추상 클래스(abstract class)

1. 추상 클래스란?

미완성 메서드를 포함하고 있는 미완성 클래스이다. 추상클래스는 상속을 통해 하위 클래스에 의해서 완성될 수 있다. 추상 클래스는 abstract 키워드를 클래스의 선언부에 붙여주기만 하면 된다.

abstract class 클래스 이름 {
  ...
}​

추상 클래스는 추상 메서드를 포함하고 있다는 점을 제외하고 일반 클래스와 같다.

 

2. 추상 메서드(abstract method)

메서드는 선언부와 구현부(몸통)로 구성되어 있다. 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨둔 것이 추상메서드이다. 메서드를 미완성 상태로 남겨 놓는 이유는 상속받는 클래스에 따라 메서드의 내용이 달라질 수 있기 때문이다. 추상 메서드 역시 키워드 abstract를 앞에 붙여주고 구현부가 없으므로 괄호{} 대신 문장의 끝을 알리는 세미콜론을 적어준다.
abstract 리턴타입 메서드이름();​

추상클래스로부터 상속받는 하위 클래스는 오버라이딩을 통해 상위 클래스의 추상 메서드를 모두 구현해주어야 한다. 그렇지 않을 경우 하위 클래스 역시 추상 클래스로 지정해주어야 한다. 그냥 괄호{}를 사용하고 구현해놓지 않아도 되지만 굳이 abstract 키워드를 사용하는 이유는 하위 클래스에서 추상 메서드를 구현하도록 강요하기 위해서이다.

 

3. 추상 클래스의 작성

여러 클래스에 공통적으로 사용될 수 있는 클래스를 바로 작성하기도 하고, 기존 클래스의 공통적인 부분을 뽑아서 추상 클래스로 만들어 상속하도록 하는 경우도 있다. 상속이 하위 클래스를 만드는데 상위 클래스를 사용하는 것이라면, 반대로 추상화는 기존 클래스의 공통 부분을 뽑아 상위 클래스를 만드는 것이라 할 수 있다.

추상화	클래스간의 공통점을 찾아 공통의 상위 클래스를 만드는 작업
구체화	상속을 통해 클래스를 구현, 확장하는 작업​
728x90
반응형

'Study > JAVA' 카테고리의 다른 글

[Java] 7-8. 내부 클래스(inner class)  (0) 2022.09.06
[Java] 7-7. 인터페이스(interface)  (0) 2022.09.06
[Java] 7-5. 다형성(polymorphism)  (0) 2022.09.05
[Java] 7-4. 제어자(modifier)  (0) 2022.09.05
[Java] 7-3. package와 import  (0) 2022.09.05

댓글