추상 클래스 선언: 클래스 선언에 abstract키워드를 붙이면 추상 클래스 선언이 된다.
추상 클래스는 new 연산자를 이용해서 객체를 직접 만들지 못하고 상속을 통해 자식 클래스만 만들 수 있다.
강제로 자식클래스에서 메소드를 구현하도록 함
public class ShapeExam {
public static void main(String[] args) {
MyShape ms = new MyLine(0,0,5,5);
System.out.println(ms.draw()); //오버라이딩된 자식메소드 호출ㄴ
}
}
/** 도형들의 공통속성 정의 */
public abstract class MyShape {
private int x,y; //도형 기준좌표
public MyShape() { //정상적인 메소드
}
public MyShape(int x, int y) {
super();
this.x = x;
this.y = y;
}
public abstract String draw();// 추상적인 메소드(도형그리기 기능 제공)
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("MyShape [x=").append(x).append(", y=").append(y).append("]");
return builder.toString();
}
}
public class ShapeExam {
public static void main(String[] args) {
MyShape ms = new MyLine(0,0,5,5);
System.out.println(ms.draw()); //오버라이딩된 자식메소드 호출
}
}
결과 : Line