[C#] interface vs abstract class 본문

프로그래밍/C#

[C#] interface vs abstract class

디유비 2020. 6. 28. 01:51

* 인터페이스(interface)

메서드, 이벤트, 인덱서(인덱스를 이용해서 객체 내의 데이터에 접근하게 해주는 프로퍼티), 프로퍼티만 가질 수 있다. (구현을 가질 수 없다.)

클래스, 인터페이스에서 상속 가능함

여러 개의 인터페이스 한꺼번에 상속 가능

 

* 추상 클래스 (abstract class)

구현을 가질 수 있으나 일반 클래스와 달리 인스턴스를 가질 수 없다.

여러 개의 클래스를 한꺼번에 상속할 수 없음 (죽음의 다이아몬드 문제)

  - up-casting 때문에 할아버지 클래스를 두 개의 파생 클래스가 상속하고, 이 두 개의 파생 클래스를 하나의 자식 클래스가 상속하게 될 경우 모호해진다.

'프로그래밍 > C#' 카테고리의 다른 글

[C#] GC (Garbage Collection)  (0) 2020.06.29
[C#] 프로퍼티  (0) 2020.06.28
[C#] Generic을 쓰자  (0) 2020.06.28
Comments