최대 1 분 소요

추상 클래스와 메서드(Abstract Classes and Methods)

  • 추상 체이터란 구체적인 것들은 숨기고 필수적인 정보만 보여주는 것입니다.
  • 추상은 추상 클래스 또는 인터페이스(interfaces)를 통해 구현할 수 있습니다.
  • abstract은 비접근 제어자이며 클래스와 메서드에 사용할 수 있습니다.
    • 추상 클래스: 객체 생성이 제한되는 클래스 (객체를 생성하고자 한다면 반드시 상속받은 다른 클래스에서 생성 가능합니다.
    • 추상 메서드: 추상 클래스 안에서만 사용할 수 있으며 메서드가 정의되어 있지않아야함. 메서드의 정의는 자식클래스에서 할 수 있습니다.
  • 예시
    // 추상 클래스
    abstract class Animal {
    // 추상 메서드 (정의가 안되어있음)
    public abstract void animalSound();
    // 일반 메서드
    public void sleep() {
      System.out.println("Zzz");
    }
    }
    
    // 자식 클래스
    class Ping extends Animal {
    public void animalSound() {
      // animalSound는 여기서 정의함
      System.out.println("꾸익꾸익~");
    }
    }
    
    // 메인 클래스
    class Main {
    public static void main(String[] args) {
      Pig myPig = new Pig();
      myPig.animalSound();
      myPing.sleep();
    }
    }