728x90
반응형
추상화는 복잡한 문제들 중에 공통적인 부분을 추출하여 추상 클래스로 제공하고, 상속을 이용하여 나머지 클래스들을 하위 클래스로 제공하는 기법이다.
추상화는 다음과 같이 선언한다.
abstract class 클래스명{
abstract void 메소드명();
}
일반적인 클래스와 메소드의 경우는 이렇게 서술했다.
class Shape{
void draw() {};
void computerArea(double a, double b){};
}
하지만 추상화에서 이대로 abstract 선언을 하면 에러가 난다.
규칙1. abstract 선언은 선언부만 기술하고 기능 기술은 상속받은 자식 클래스에서 해야한다.
{} 부분을 삭제해주면 에러가 나지 않는다.
수정후
abstract class shape{ //abstract 클래스 선언
abstract void draw(); //abstract 메소드 선언
abstract void computerArea(double a, double b); //abstract 메소드 선언
}
class Rectang11 extends shape{
void draw() { } //상속받은 클래스 재정의
void computerArea(double a, double b) { }
}
public class AbstractTest1 {
public static void main(String[] args) {
}
}
Add unimplemented methods
abstract 을 상속받은 클래스를 작성시 아래와 같이 재정의를 해주지 않으면 에러가 나는 것을 볼 수 있다.
Rectang11에 shape를 상속받았는데 abstract 메소드가 재정의 되지 않았기 때문이다. 이 경우 오류를 클릭하면
이런 에러창을 뜨는 것을 확인 할 수 있는데 여기에 Add unimplemented methods를 클릭해보자
자동으로 오버라이드 되는 것을 볼 수 있다.
728x90
반응형
'JAVA > 개념정리' 카테고리의 다른 글
[JAVA] AWT와 Swing (0) | 2022.10.13 |
---|---|
[JAVA] 추상(abstract) 클래스와 오버라이딩 (0) | 2022.10.13 |
[JAVA] 다형성 (0) | 2022.10.13 |
[JAVA] Object 클래스 (0) | 2022.10.12 |
[JAVA] Super (0) | 2022.10.12 |
댓글