자바[JAVA] – 10.추상 클래스(Abstract Class)

추상화?

추상화(Abstract)는 구현을 할 수 없는 상태에서 자식 클래스(sub class)에서 구현을 하겠다 선언하고, 부모 클래스(super class)에서는 추상적으로 선언만 하고 안의 내용은 생략하는 것을 말한다.

추상 클래스와 추상 메소드를 선언할 수 있고 abstract를 사용한다.

추상 클래스 선언
Java
public abstract class Food {  // 추상 클래스를 선언함

  abstract void imformation();  // 추상 메소드를 선언
  
  public void init(){
    System.out.println("음식에 대한 정보입니다.");
}

위처럼 abstract를 사용하여 추상화를 할 수 있다.

추상 메서드 선언
Java
public class Beverage extends Food {
  public String name;
  public int liter;
  
  public Beverage(String name, int liter){
    this.name = name;
    this.liter = liter;
  }
  
  @Override
  public void imformation(){  // 추상화한 메서드 imformation
    System.out.println(this.name + "는 용량이 " + this.liter + "ml입니다.");
  }
}
Java
public class Snack extends Food {
  public String name;
  public int gram;
  
  public Snack(String name, int gram){
    this.name = name;
    this.gram = gram;
  }
  
  @Override
  public void imformation(){
    System.out.println(this.name + "는 무게가 " + this.gram + "gram입니다.");
  }
}

위처럼 추상화를 이용하여 사용할 클래스의 틀을 잡고 각각의 자식 클래스에서 다른 기능의 메서드를 구현할 수 있다.

Java
public static void main(String[] args) {
  Beverage coke = new Beverage("coke", 500);
  Snack chip = new Snack("chip", 300);

  cook.init();
  coke.imformation();
  Snack.imformation();
}

=> 음식에 대한 정보입니다.
   coke는 용량이 500ml입니다.
   chip는 무게가 300gram입니다.

Leave a Comment