추상 클래스(abstract class)
- 완전하게 구현되어 있지 않은 메서드를 가지고 있는 클래스를 의미한다.
- 메서드가 미완성되어 있으므로 추상 클래스로는 객체를 생성할 수 없다. → Shape s1 = new Shape; 불가능!
- 하나 이상의 추상 메서드를 가지고 있어야 한다.
- 추상 메서드로 정의하면 서브 클래스에는 반드시 구현하여야 하므로 구현을 강요하는 면에서 장점이 있다.
추상 클래스 예시
package ex07;
abstract class Shape {
int x, y;
public void translate(int x, int y) { // 추상 클래스도 보통 메서드를 가질 수 있다.
this.x = x;
this.y = y;
}
public abstract void draw(); // 추상 메서드 선언
}
class Rectangle extends Shape {
int width, height;
public void draw() { // 자식 클래스에서 부모 클래스의 추상 메서드를 구현하지 않으면 오류 발생!
System.out.println("사각형 그리기 메소드");
}
}
class Circle extends Shape {
int radius;
public void draw() {
System.out.println("원 그리기 메소드");
}
}
public class AbstractTest {
public static void main(String[] args) {
//Shape s1 = new Shape(); // 추상 클래스로 객체를 생성할 수는 없다.
Shape s2 = new Circle();
s2.draw();
}
}
출력 결과

Share article