
미완성 클래스
추상적이라는 뜻을 가진 단어abstract를 이용해서 선언하는 클래스이다.
다른 일반적인 클래스는 필드가 선언되고 초기화되며 메소드는 내부에 로직이 존재한다. 하지만 추상 클래스는 이름에 걸맞게 내부 로직이 없는 추상 메소드가 존재할 수 있다. (추상 메소드는 무조건 추상 클래스/인터페이스 내부에서만 선언이 가능하다)
public abstract class NAME1 {
protected String name;
abstract returntype METHODNAME(~~);
}
추상 메소드를 사용하기 위해선 추상 클래스를 상속받은 자식 클래스에서 오버라이드를 통해 구현해야만한다.
추상 클래스 내부에 여러 추상 메소드가 존재 할 수 있는데, 이 추상 클래스를 상속하기 위해선 모든 추상 메소드를 구현해야한다.
public abstract class NAME1 {
abstract returntype METHODNAME1(~~);
abstract returntype METHODNAME2(~~);
}
//////////////////////////////////////////
public class 냥 extends NAME1{
~~~
@Override
public type methodname1(){
~~~
}
@Override
public type methodname2(){
~~~
}
}
여러 클래스의 공통 메소드, 필드를 묶어서 부모 클래스를 만들고, 해당 기능을 사용하기 위해서 상속받은 클래스를 자식 클래스라고 한다. 이때 공통 사용 메소드는 내부에 로직이 결정되어 있어서 동일한 기능만 수행하지만, 추상 메소드를 사용하면 메소드 이름과 매개변수만 일치한다면 각각 비즈니스 로직을 따로 작성이 가능하기 때문에 좀더 유연한 코드 작성이 가능하다.