추상 클래스(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)는 하위 클래스가 따라야 하는 프로토콜을 정의하는 데 사용됩니다.
'공부 > C++' 카테고리의 다른 글
벡터(Vector) 재할당 속도 줄이는 법 (0) | 2023.02.07 |
---|---|
벡터에서 push_back을 이용할 때 메모리가 왜 2배씩 늘어나는가? (0) | 2023.02.07 |
인터페이스(interface)의 개념 (0) | 2023.01.25 |
추상 클래스(abstract class)의 개념 (0) | 2023.01.24 |
malloc과 new의 차이점, free와 delete의 차이점 (0) | 2023.01.18 |