공부/C++

추상 클래스(abstract class)와 인터페이스(interface)의 차이

셩잇님 2023. 1. 31. 18:27
반응형

 

 

추상 클래스(abstract class)와 인터페이스(interface)는 C++의 두 가지 OOP 개념입니다. 차이점은 다음과 같습니다.

정의 :

추상 클래스(abstract class)는 인스턴스화를 할 수 없고 서브 클래싱되도록 의도된 클래스입니다. 인터페이스(interface)는 하위 클래스가 따를 계약을 지정하는 순수 가상 클래스입니다.

상속 :

추상 클래스(abstract class)는 다른 클래스 및 인터페이스에서 상속할 수 있지만, 인터페이스(interface)는 다른 인터페이스에서만 상속할 수 있습니다.

구현 :

추상 클래스(abstract class)는 추상 메서드와 구체적인 메서드를 모두 포함할 수 있지만, 인터페이스(interface)는 추상 메서드만 포함할 수 있습니다. 구체적인 메서드는 추상 클래스(abstract class)의 하위 클래스에서 구현되어야 합니다.

다중 상속 :

추상 클래스(abstract class)는 하나의 클래스에서만 상속할 수 있지만 여러 인터페이스에서 상속할 수 있습니다. 인터페이스(interface)는 여러 인터페이스에서 상속할 수 있습니다.

접근성 :

추상 클래스(abstract class)의 멤버는 서로 다른 액세스 한정자를 가질 수 있지만, 인터페이스(interface)의 모든 멤버는 암시적으로 공개됩니다.

기능 :

추상 클래스(abstract class)는 하위 클래스에 대한 공통 인터페이스 및 구현을 정의하는 데 사용되는 반면, 인터페이스(interface)는 하위 클래스가 따라야 하는 프로토콜을 정의하는 데 사용됩니다.

 

 

 

반응형