728x90
추상 이해하기
- 추상 메서드란?
- 추상 클래스란?
추상 메서드란?
메서드를 선언만 하고 구현을 하지 않은 메서드가 추상 메서드입니다. 즉 {} 괄호가 없는 메서드가 추상 메서드입니다.
public void channelUp(); //추상 메서드
public void turnOn(){ //일반 메서드
System.out.println("전원을 킵니다.");
}
위의 예시는 추상 메서드와 일반 메서드를 선언한 예시입니다. 위의 모습처럼 {} 괄호가 없이 세미콜론으로 끝나는 경우는 메서드를 완벽히 만든 것이 아닌 이러한 메서드가 있다는 표시만 한 추상 메서드입니다. 이러한 추상 메서드는 상속하여 하위 클래스에서 완성을 시킵니다.
추상 클래스란?
추상 클래스는 추상 메서드를 포함하는 클래스를 추상 클래스라고 하며 오로지 상속을 하기 위해서 만들어집니다. 추상 클래스를 만드는 방법은 기존 클래스를 만드는 방식과 크게 다르지 않고 abstract 예약어를 사용하여 만듭니다.
public abstract class Tv{ //abstract를 이용하여 추상 클래스 만들기
public void turnOn(){
System.out.println("티비를 킵니다.");
}
public void turnOff(){
System.out.println("티비를 끕니다.");
}
public void channelUp();//추상 메서드
public void channelDown();//추상 메서드
}
위의 예시는 추상 클래스를 만든 예시입니다. abstract를 이용하여 추상 클래스라는 것을 알려주게 됩니다. 이러한 추상 클래스는 인스턴스를 생성할 수 없습니다. 구현이 완벽히 되지 않았기 때문입니다. 따라서 꼭 상속하여 하위 클래스에서 구현을 하여 사용합니다. 일종의 설계도로 생각하셔도 괜찮습니다.
public class Digital extends Tv{
public void channelUp{
System.out.println("체널을 하나 올립니다.");
}
public void channelDown{
System.out.println("체널을 하나 내립니다.");
}
}
위와 같이 채널을 어떻게 올리고 내릴지는 상속을 한 이후 구현합니다. 앞의 상속에서 배웠듯 하위 클래스마다 기능이 다르기에 기본 틀만 추상 클래스에서 만든 후 상속받은 하위 클래스에서 구현을 하는 경우 추상 클래스는 설계도가 되기도 합니다. 상속받은 하위 클래스에서는 추상 메서드를 구현하지 않는다면 오류가 나기 때문에 구현해야 하는 메서드를 까먹을 일을 방지할 수 있습니다.
728x90