개발의 시작과 끝

2020.03.02 / Day - 18 자바 abstract 클래스 복습 본문

자바 복습

2020.03.02 / Day - 18 자바 abstract 클래스 복습

개발지혜 2020. 3. 2. 17:40

bbm - 6일차

abstract(추상)

abstract란 상속을 강제하는 일종의 규제

abstract 클래스나 메소드를 사용하기 위해서는 반드시 상속해서 사용하도록 강제하는 것abstract다. 

즉 부모 클래스에는 메소드의 시그니처만 정의해놓고 그 메소드의 실제 동작 방법은

이 메소드를 상속 받은 하위 클래스의 책임으로 위임하고 있다.

class Main {
  public static void main(String[] args) {
   
    무기 a무기 = new 칼();
    
    a무기.공격();
    // 출력 : 칼로 공격합니다.

    a무기 = new 활();
    a무기.공격();
    // 출력 : 활로 공격합니다.
  }
}

abstract class 무기 {
  abstract void 공격();
}

class 칼 extends 무기 {
  void 공격() {
    System.out.println("칼로 공격합니다."); 
  }
}

class 활 extends 무기 {
  void 공격() {
    System.out.println("활로 공격합니다."); 
  }
}