IT/JAVA

추상 클래스(Abstract Class)와 추상 메서드(Abstract Method)

바다, 2017. 12. 29. 10:44
반응형
추상 클래스 (Abstract Class)

- 추상 메서드(Abstract Method)를 포함하고 있는 클래스를 말하며,

추상메서드를 포함하고 있다는 것을 제외하고 일반 클래스와 다르지 않습니다.
(생성자, 멤버 변수, 메서드를 가질 수 있습니다.)

추상 클래스로는 단독으로 인스턴스를 생성할 수 없습니다.

상속을 통해 상속(extends) 받은 클래스에 의해 완성이 될 수 있습니다.
(새로운 클래스를 작성하는데 있어서 바탕이 되는 조상 클래스라고 생각하면 됩니다.)

추상 클래스는 아래와 같이 "abstract" 키워드를 사용하면 됩니다.

abstract class ClassName {
// 
}

클래스의 선언부에 abstract가 있다면, 해당 클래스에는 추상메서드가 있으므로 상속을 통해 구현해줘야 한다는 것을 직관적으로 알 수 있습니다.


추상 클래스를 상속 받은 자손 클래스는 오버라이딩(Overriding, 재정의)을 통하여 조상 클래스의 추상 메서드를 모두 구현해줘야 합니다.


상속 받은 추상 메서드 중 하나라도 구현하지 않는다면, 자손 클래스 역시 추상 클래스로 선언을 해줘야 합니다.





추상 메서드 (Abstract Method)


- 선언부만 작성하고 구현부는 작성하지 않은 메서드를 말합니다.


구현부를 작성하지 않은 채로 남겨 놓은 이유는 메서드의 구현부가 상속 받은 클래스에 따라 달라질 수 있기 때문입니다.


상황에 맞게 사용할 수 있으며, 이 또한 코드 재 사용성을 높이도록 하여, 코드의 중복을 막기 위한 일환이라고 볼 수 있습니다.


추상 메서드도 추상 클래스와 같이 "abstract" 키워드를 사용합니다.


abstract returnType MethodName();


추상 메서드는 구현부가 없기 때문에 {}를 사용하지 않고 세미콜론(;)으로 마칩니다.


(어떠한 목적으로 사용할 메서드인지 주석을 남겨두어야 활용도가 높습니다.)



반응형