추상클래스란?
완전하게 구현되어 있지 않은 메소드를 가지고 있는 클래스를 의미한다. 메소드가 미완성되어 있으므로 추상 클래스로는 객체를 생성할 수 없다. 주로 상속 계층에서 추상적인 개념을 나타내기 위한 용도로 사용된다.
추상메소드의 예)
abstract class Shape{ // 추상클래스 Shape을 선언한다. 추상 클래스로는 객체를 생성할 수 없다.
int x, y;
public void move(int x, int y){ // 추상클래스라고 하더라도 추상 메소드가 아닌 보통의 메소드를 가질 수 있다.
this. x = x;
this. y = y;
}
public abstract void draw(); // 추상 메소드를 선언한다. 추상메소드를 하나라도 가지면 추상클래스가 된다. 추상메소드를 가지고 있는데도 abstract를 class 앞에 붙어있지 않으면 컴파일 오류가 발생한다.
};
class Rectangle extends Shape{
int width, height;
public void draw() { // 추상메소드 구현 & 자식 클래스 Rectangle에서 부모 클래스의 추상 메소드 draw()를 실제 메소드로 구현한다. 자식 클래스에서 추상 메소드를 구현하지 않으면 컴파일 오류가 발생한다.
System.out.println("사각형 그리기 메소드");
}
};
class Circle extends Shape {
int radius;
public void draw() { // 추상 메소드 draw()를 실제 메소드로 구현한다.
System.out.println("원 그리기 메소드");
}
};
'java > 객체지향 프로그래밍' 카테고리의 다른 글
자바 실제 객체 (0) | 2019.04.16 |
---|---|
자바 상속과 다형성 (0) | 2019.04.16 |
자바 객체 소멸 (0) | 2019.04.11 |
자바 객체 지향 프로그래밍의 특징 (0) | 2019.04.09 |
자바 객체 지향 프로그래밍이란? (0) | 2019.04.09 |