객체 간의 필드와 메서드의 이름을 통일하여 소스의 가독성을 높이기 위함입니다. 추상 클래스는 상속을 강제합니다. 즉 부모 클래스에는 메서드의 시그니처만 정의해놓고 그 메서드의 실제 동작은 메서드를 상속받은 하위 클래스의 책임으로 위임하고 있습니다.
package jun;
//추상클래스(완전하게 구현되어 있지 않은 메소드를 가지고 있는 클래스)
public abstract class AbstractTest { //POJO(Plain Old Java Object) - 기본적인 형식
protected String name;
public AbstractTest() {
}
public AbstractTest(String name) {
super();
this.name = name;
}
public String getName() { //메소드 구현
return name;
}
public abstract void setName(String name); //추상메소드
}
package abstract_;
public class AbstractMain extends AbstractTest{
@Override
public void setName(String name) {
this.name = name;
}
public static void main(String[] args) {
//sub class를 이용하여 생성
AbstractTest at = new AbstractMain(); //부모 = 자식
at.setName("권용준");
System.out.println(at.getName()); //권용준
}
}