반응형
추상 클래스 (Abstract Class)
- 추상 메서드(Abstract Method)를 포함하고 있는 클래스를 말하며,
추상메서드를 포함하고 있다는 것을 제외하고 일반 클래스와 다르지 않습니다.
(생성자, 멤버 변수, 메서드를 가질 수 있습니다.)
추상 클래스로는 단독으로 인스턴스를 생성할 수 없습니다.
상속을 통해 상속(extends) 받은 클래스에 의해 완성이 될 수 있습니다.
(새로운 클래스를 작성하는데 있어서 바탕이 되는 조상 클래스라고 생각하면 됩니다.)
추상 클래스는 아래와 같이 "abstract" 키워드를 사용하면 됩니다.
abstract class ClassName {
//
}
클래스의 선언부에 abstract가 있다면, 해당 클래스에는 추상메서드가 있으므로 상속을 통해 구현해줘야 한다는 것을 직관적으로 알 수 있습니다.
추상 클래스를 상속 받은 자손 클래스는 오버라이딩(Overriding, 재정의)을 통하여 조상 클래스의 추상 메서드를 모두 구현해줘야 합니다.
상속 받은 추상 메서드 중 하나라도 구현하지 않는다면, 자손 클래스 역시 추상 클래스로 선언을 해줘야 합니다.
추상 메서드 (Abstract Method)
- 선언부만 작성하고 구현부는 작성하지 않은 메서드를 말합니다.
구현부를 작성하지 않은 채로 남겨 놓은 이유는 메서드의 구현부가 상속 받은 클래스에 따라 달라질 수 있기 때문입니다.
상황에 맞게 사용할 수 있으며, 이 또한 코드 재 사용성을 높이도록 하여, 코드의 중복을 막기 위한 일환이라고 볼 수 있습니다.
추상 메서드도 추상 클래스와 같이 "abstract" 키워드를 사용합니다.
abstract returnType MethodName();
추상 메서드는 구현부가 없기 때문에 {}를 사용하지 않고 세미콜론(;)으로 마칩니다.
(어떠한 목적으로 사용할 메서드인지 주석을 남겨두어야 활용도가 높습니다.)
반응형
'IT > JAVA' 카테고리의 다른 글
인터페이스(Interface) 정의 및 사용 이유 (장점) (0) | 2017.12.29 |
---|---|
자바 접근제어자 (Access Modifier) (0) | 2017.12.29 |
자바(Java) final 키워드 (0) | 2017.12.28 |
자바의 자료형 (JAVA Data Type) (0) | 2017.12.18 |
오버로딩(Overloading)과 오버라이딩(Overriding) (0) | 2017.06.22 |