C#

추상클래스와 인터페이스

khkg12 2023. 9. 25. 15:47

추상클래스란?

객체를 생성할 수 없고, 상속받은 자식으로부터 기능들을 구현해야 하는 클래스.

 

인터페이스란?

다중상속이 허용되지 않는 C#에서 객체지향 프로그래밍을 더 강력하게 사용하기 위한 것으로 추상 클래스 보다 높은 수준의 추상 멤버로만 구성된 클래스

 

클래스의 다중상속을 막은 이유

몬스터를 상속받는 슬라임과 드래곤이 있을 때 둘다 몬스터의 추상함수를 구현했다고 가정하고 슬라임과 드래곤을 둘 다 상속받는 슬라임 드래곤이 있을 경우 위에서 구현한 추상함수는 어떤걸 사용하는 것인지 모르기 때문에 다중상속을 막아둔 것이다. 

 

추상클래스와 인터페이스의 차이점

추상클래스는 확장이 목표, 인터페이스는 그 기능의 구현이 목표 즉 상속은 확장, 인터페이스는 실체화라고 생각하면 편하다.

 

인터페이스 사용예시

예를 들어 인간과 고양이는 달릴 수 있다. 그렇다면 Animal 로 묶어서 달리기를 오버라이딩 하면되지않을까? 그때 만약 차도 달릴 수 있어야한다면 car도 Animal을 상속받아야하는것인가? 아니다. 상속은 정체성도 물려받기 때문에 차는 동물이 아니므로 구조가 이상하다. 그래서 우리는 인터페이스로 IRunable을 각각 상속받아 실체화하는 것이다.

 

코드예시

'C#' 카테고리의 다른 글

IComparable 인터페이스 상속을 통한 클래스 정렬  (0) 2023.11.30
델리게이트와 event  (0) 2023.11.08
ScriptableObject  (0) 2023.09.08
코루틴  (0) 2023.09.01
컴포넌트 개념과 값형식 참조형식  (0) 2023.08.16