새소식

반응형
Java

(Java) Abstract Class와 Interface 차이에 대하여

  • -
반응형

Abstract ClassInterface는 둘 다 상속이 가능하고 구현해야 될 기능을 정의해 주지만 사용 목적에 따라 쓰임새가 다릅니다. Abstract ClassInterface의 가장 큰 차이점은 다중 상속 가능 여부입니다.

 

Abstract Class는 한 개의 클래스만 상속 가능하며 자식 클래스에 일반 메서드를 작성해서 물려줄 수 있습니다. 부모 클래스가 가진 기능들을 구현해야 할 때 사용합니다. Interface는 공통적인 기능이 필요할 때 사용합니다.

 

아래의 추상 클래스 예제로 설명드리겠습니다.

Abstract Class와 Interface 차이에 대하여

 

위에서 MagicianWarrior는 공통적으로 Human이고 Human의 기능들을 상속받습니다. 하지만 각 추상 클래스의 속성이 다르므로 구현되어야 할 기능은 따로 정의됩니다. 따로 정의되는 기능을 인터페이스로 구현합니다.

 

하지만 위 다이어그램만 본다면 Basic Cast Able이나 Basic Fence Able은 그냥 추상 클래스에 포함해서 넣을 법 합니다. 하지만 Magician 추상 클래스나 Warrior 추상 클래스를 상속받은 Fire Magic Warroir 클래스 같은 경우 불 마법도 쓸 줄 알고 불검술도 쓸 줄 압니다.

   

이때 다중으로 공통적인 기능을 구현해야 할 때 Interface를 사용합니다.

반응형

 

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.