인터페이스(Interface)와 추상 클래스(abstract class)

2019. 9. 13. 01:30

인터페이스와 추상 클래스는 무엇이고 공통점과 차이점은 무엇인가?

 

 

 

공통점

  1. 인터페이스와 추상 클래스는 객체지향의 프로그래밍 언어에서 사용되는 클래스의 종류이다. 
  2. 둘 다 메서드의 선언만 있고 구현 내용이 없는 클래스 이기 때문에 단독으로 객체를 생성할 수 없다.
  3. 상속받은 객체를 생성할 수 있으며 결국 자식 클래스가 무언가 반드시 구현하도록 위임해야 할  사용해한다.

 

 

차이점

  1. 사용 목적에서의 차이

    - 추상 클래스는 공통적 기능을 하는 클래스들의 추상화이다. 이 때문에 여러 클래스들의 공통점을 찾아 추상화시켜 사용하는 것이 개발상 이득일 때 추상 클래스를 구현하여 사용한다.

    - 인터페이스는 구현하고자 하는 클래스들에 대해 특정 메서드가 반드시 존재하도록 강제한다. 따라서 인터페이스를 통해 구현 객체가 같은 동작을 한다는 것을 보장하기 위해 사용한다.

  2. 키워드 및 형태

    추상 클래스는 일반적인 클래스의 한 종류인 반면 인터페이스는 인터페이스라는 고유의 형태를 지닌다.

    - 추상 클래스의 선언은 abstract 키워드를 사용하고 인터페이스는 interface 키워드를 사용

    - 상속 과정에서도 클래스는 extends 키워드를 사용하고 인터페이스는 implements 키워드를 사용하여 구현한다.

    - 형태적인 측면에서도 차이점을 확인할 수 있다. 추상 클래스는 미구현(선언만 되어있는) 멤버 메서드를 포함할 수도 있고 인터페이스는 메서드의 선언만(뼈대만) 존재한다.


  3. 다중 상속

    일반적으로 Java에서는 다중 상속을 지원하지 않는다. 하지만, 인터페이스의 경우 여러 개의 인터페이스를 implements 하여 구현이 가능하다.

 

 

 출처:  Googling

 

 

 

 

BELATED ARTICLES

more