[Unity]/[C#]

[C#] 인터페이스

극꼼 2022. 5. 15. 10:25
반응형


1. 인터페이스란?

2. 인터페이스의 특징

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


1. 인터페이스란?

: 상속관계에 있어야 하는 클래스입니다. 모든 구현은 하위 클래스에서 이루어지며, 추상클래스와 유사하지만 다중상속이 가능하다는 점에서 차이점이 있습니다.

C# 클래스가 인터페이스를 갖는 경우, 인터페이스의 모든 멤버에 대한 구현을 제공해야 합니다.

 

2. 인터페이스의 특징

- 구현이 없고, 형식만 포함합니다. 모든 구현은 하위에서 이루어집니다.

- 다중 상속이 가능하다는 점에서 추상클래스와 차이가 있습니다.

- 상속만 가능하고 new 키워드를 써 인스턴스로 생성하는 것은 불가능합니다.

- 이벤트, 인덱서, 메서드, 속성을 포함합니다. 특히 메서드 부분을 많이 이용합니다.

- 접근한정자를 명시하지 않아도 기본 권한은 public 입니다.

 

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

* 추상클래스란? (abstract class)

: 구현하려는 메서드의 형태만 존재하고, 실제 메서드의 구현은 하위에서 구현합니다. 상속으로만 사용 가능하고, new를 통해서 생성할 수는 없습니다. 단일상속의 형태만 가능합니다.

  인터페이스 추상 클래스
접근 지정자 public 함수에 대한 접근 지정자를 가질 수 있음
상속 다중 상속 가능 단일 상속
상대 속도 느림 빠름
인스턴스화 x x
필드 필드를 가질 수 없음 필드, 상수를 정의할 수 있음
메서드 추상 메서드만 있음 비추상 메서드가 있을 수 있음

 

* 추상클래스의 구현 방법은 아래 링크 2번에 있습니다.

https://geukggom.tistory.com/75

 

[C#] 상속(virtual, override, abstract)

안녕하세요 극꼼이입니다. 이 포스팅에서는 상속을 배우면서 공부한 virtual, override, abstract에 대해 정리할 생각입니다. virtual, override, abstract는 모두 부모, 자식 함수간의 상속에 쓰이는 키워드입

geukggom.tistory.com

 

반응형

'[Unity] > [C#]' 카테고리의 다른 글

[C#] delegate와 event의 차이  (0) 2022.05.18
[C#] 구조체(struct)  (0) 2022.05.16
[C#] 메모리(+ 가비지)  (0) 2022.05.13
[C#] Nullable (feat. int?)  (0) 2022.02.04
[C# 기초] #21. 힙(Heap)  (0) 2022.01.30