Abstract Class란 Class 안에 추상 메소드가 하나라도 존재하는 클래스를 의미한다. 여기서 추상 메소드란 일반적인 메소드 구조인 선언부 + 구현부에서 구현부가 존재하지 않는 메소드를 추상 메소드라고 한다.
abstract 지정자를 붙인다. 이때 abstract 지정자의 위치는 리턴 타입 앞에 붙인다. 그리고 구현부가 없다는 의미로 메소드 맨 마지막에 {}가 아닌 ';'(세미콜론)을 붙인다.public void mehtod(){} // 일반 메소드
public abstract void method(); // 추상 메소드
class abstract AbstractParent{
// 추상 클래스는 추상메소드와 일반 메소드 둘 다 존재한다.
public void nomalAbstractParentMethod(){}
// 추상 메소드는 구현부가 없이 ;으로 끝난다.
public abstract void abstractMethod();
}
class NomalClass extends AbstractParent{
/* Abstract Class를 상속받은 클래스는
Abstract Class 안에 선언되어 있는 추상 메소드를
무조건 오버라이딩하여 구현해야 한다. */
@Override
public void abstractMethod(){
///// 구현부 Overriding /////
}
}