미완성 메서드(추상 메서드)를 포함하고 있는 클래스 이다. 이 클래스는 인스턴스로는 생성할 수 없고 상속을 통해 자식 클래스에서만 완성될 수 있다.
abstract class 클래스이름 {
}
위와 같이 추상 클래스를 선언하면 된다. 추상 클래스는 추상 메서드를 포함하고 있다는 것만 제외하고는 일반 클래스와 같다. 생성자가 있고 멤버 변수와 메서드로 가질 수 있다.
참고
추상 메서드를 포함하지 않은 클래스도 abstract를 붙이면 추상클래스로 사용할 수 있다. 이렇게 되면 해당 클래스의 인스턴스를 생성할 수 없게 된다.
메서드를 선언부만 작성해 놓은 것을 추상메서드라고 한다. 이렇게 작성하는 이유는 상속받는 클래스에 의해 내부 로직이 달라 질 수 있기 때문이다.
abstract 리턴 타입 메서드이름();
위에는 추상 메서드를 선언하는 방법이다. 위에 {}
대신 ;
를 적어준다. 추상 클래스를 상속받은 자식 클래스는 오버라이딩을 통해 추상메서드를 모두 구현해야 한다.
만약 하나라도 구현하지 않는다면 자식 클래스 또한 추상클래스로 지정해야 주어야 한다.
추상클래스 & 추상메서드를 사용하게 되면 자식클래스에게 구현을 강제하도록 하여 각 클래스에 맞게 구현 할 수 있도록 할 수 있다.