Language/C#

C# - 추상 클래스와 인터페이스 차이, 다중 상속

청렴결백한 만능 재주꾼 2021. 1. 15. 05:08
반응형

인터페이스는 퍼블릭(Public)이 기본 값이고

추상 클래스(Abstract class)는 프라이빗(Priviate)이 기본값이다.

 

 

인터페이스는 필드를 가질 수 없고 메소드를 정의할 수 없다.

 

인터페이스는 다른 인터페이스만 상속 받을 수 있고,

추상 클래스는 다른 추상 클래스나 다른 인터페이스 둘 다 상속 받을 수 있다.

 

다중 상속 문제(Problems of Multiple Class inheritance)

다이아몬드 문제라고도 한다. 모호함이 문제가 되는 것이다. 어떤 것이 선택되어질지 ,

 

한 개의 부모 클래스를 두개의 자식 클래스가 상속 받는다. 그리고 그 두개의 자식 클래스를 한 개의 자식 클래스가 상속 받을 때 생긴다.

 

이러한 문제를 해결하기 위해 나온 것이 인터페이스(Interface)이다. 굳이 메소드를 인터페이스에 구현할 필요 없고 상속받은 클래스에서 구현하고 인터페이스를 참조한 다음 그 클래스 메소드를 쓸 수 있다.

반응형