본문 바로가기
JAVA/개념정리

[JAVA] 추상화 abstract

by JJH0100 2022. 10. 13.
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

댓글