Abstract class


<aside> 💡

</aside>

메소드 선언의 의미 🧐

함수의 선언부 즉 반환 값, 함수 이름, 매개변수를 정의한다는 것은 곧 함수의 역할이 무엇인지, 어떻게 구현해야 하는지를 정의한다는 뜻.

👀 메소드를 선언한다는 것은 메소드가 해야 할 일을 명시하는 것이다.

<aside> 💡 int minus(int a, int b);

</aside>

Sample 1.

package abstractex;

public abstract class Computer {
	// public void display();
	// public void typing();
	public abstract void display();
	public abstract void typing();
	public void turnOn() {
		System.out.println("전원을 켭니다.");
	};
	public void turnOff() {
		System.out.println("전원을 끕니다.");
	};
	
}
  1. public void display() 혹은 typing() 으로 작성했을 경우, 구현부가 없기 때문에 body 를 작성하거나 abstract 예약어를 사용해서 추상 메소드로 만들 것을 제시한다.
  2. display(), typing()을 추상 메소드로 만들어도 이번에는 클래스명까지 오류가 표시되는데, 이는 메소드에서 abstract 예약어를 빼거나 해당 클래스를 추상 클래스로 만들어주어야 하기 때문에 예약어를 추가해주어야 한다.
  3. 따라서 abstract 예약어를 사용하여 추상 클래스로 선언해야 최종적으로 오류가 없어진다.