이전 걸음에서 추상화에 대한 기본적인 개념을 보고 꼭 알아두어야 하는 내용들을 공부를 했습니다. 추상화에 대한 내용이 모두 한 것이 아니지만 이번 걸음과 다음 걸음을 통해서 같이 공부를 한다면 추상화를 완벽하게 이해를 하실 수 있습니다.
이번 걸음에서는 abstract class에 대해서 배워 보도록 하겠습니다. 추상화를 할 수 있는 class에 첫 번째인 abstract class를 이번 걸음에서 같이 공부를 하신다면 abstract class를 완벽하게 이해를 하실 수 있습니다.
abstract class의 정의를 다시 한번 자세히 설명을 드리고 예제 소스를 통해서 Java에서 어떻게 사용이 되는지 확인을 하실 수 있습니다. 이번 걸음에서 abstract class의 내용과 활용에 대해서 확실히 이해를 하실 수 있습니다.
abstract class 란?
abstract class는 일반 class의 속성이나 기능을 모두 똑같이 가질 수 있습니다. 하지만 abstract class는 abstract method를 가지고 있을 수 있습니다. 꼭 abstract method를 가지고 있어야 하는 것은 아니지만 그렇게 사용을 하려면 일반 class를 사용을 하는 것이 낫습니다. 마지막으로 abstract class를 상속을 받는 class는 무조건 abstract method를 Overriding을 해줘야 합니다. 일반 method는 Orverriding은 선택 사항입니다.
abstract class 예제
abstract class A{
멤버변수 or 일반 메소드 선언도 가능합니다.
// 추상 메소드
abstract void abc();
}
Class B extends A{
void abc(){ // 부모 추상화 클래스의 메소드를 재정의를 필수로 해야 합니다.
System.out.println(“abc”);
}
}
public class Test{
public static void main(String[] args){
A a = new A(); // abstract class는 객체를 만들 수 없습니다.
A a1 = new B();// 가능
B b = new B(); // 가능
}
}
위의 예제 소스를 참고해서 abstract class를 상속을 받아서 사용을 할 수 있습니다. abstract class도 class이기 때문에 class B는 다른 class를 상속을 받을 수 없습니다.