인터페이스(Interface)와 추상 클래스(abstract class)
2019. 9. 13. 01:30
인터페이스와 추상 클래스는 무엇이고 공통점과 차이점은 무엇인가?
공통점
- 인터페이스와 추상 클래스는 객체지향의 프로그래밍 언어에서 사용되는 클래스의 종류이다.
- 둘 다 메서드의 선언만 있고 구현 내용이 없는 클래스 이기 때문에 단독으로 객체를 생성할 수 없다.
- 상속받은 객체를 생성할 수 있으며 결국 자식 클래스가 무언가 반드시 구현하도록 위임해야 할 때 사용해한다.
차이점
- 사용 목적에서의 차이
- 추상 클래스는 공통적 기능을 하는 클래스들의 추상화이다. 이 때문에 여러 클래스들의 공통점을 찾아 추상화시켜 사용하는 것이 개발상 이득일 때 추상 클래스를 구현하여 사용한다.
- 인터페이스는 구현하고자 하는 클래스들에 대해 특정 메서드가 반드시 존재하도록 강제한다. 따라서 인터페이스를 통해 구현 객체가 같은 동작을 한다는 것을 보장하기 위해 사용한다. - 키워드 및 형태
추상 클래스는 일반적인 클래스의 한 종류인 반면 인터페이스는 인터페이스라는 고유의 형태를 지닌다.
- 추상 클래스의 선언은 abstract 키워드를 사용하고 인터페이스는 interface 키워드를 사용
- 상속 과정에서도 클래스는 extends 키워드를 사용하고 인터페이스는 implements 키워드를 사용하여 구현한다.
- 형태적인 측면에서도 차이점을 확인할 수 있다. 추상 클래스는 미구현(선언만 되어있는) 멤버 메서드를 포함할 수도 있고 인터페이스는 메서드의 선언만(뼈대만) 존재한다. - 다중 상속
일반적으로 Java에서는 다중 상속을 지원하지 않는다. 하지만, 인터페이스의 경우 여러 개의 인터페이스를 implements 하여 구현이 가능하다.
출처: Googling
'CS 지식 > 기타' 카테고리의 다른 글
쿠키와 세션 (0) | 2019.09.11 |
---|---|
C++의 template과 Java generic method 와의 공통점과 차이점 (0) | 2019.09.05 |
객체 지향 4대 요소 (0) | 2019.09.04 |
버퍼 오버플로우(Buffer Overflow) 공격 방법이란? (0) | 2019.09.03 |
결합도와 응집도 (0) | 2019.09.03 |