(C#) Virtual / Abstract / Interface

2021. 5. 31. 22:55Study/Unity

VirtualAbstract는 거의 비슷하다.

virtual method선택적으로 파생 클래스에서 override 할 수 있습니다.

abstract method무조건적으로 파생 클래스에서 메서드를 override 해야 합니다.

 

overriding이 선택적이기 때문에  virtual method무조건적으로 본문을 선언해야 하고,

무조건적으로 override하기 때문에 abstract method본문을 선언할 수 없습니다.

 

또한 abstract class는 인스턴스화할 수 없습니다. (어찌보면 메소드의 본문을 선언할 수 없기에 당연한 것이다.)

 

Interface는 Abstract와 본문을 선언하지 못한다는 점에서 유사합니다.

하지만 멤버필드를 사용할 수 없습니다.(프로퍼티는 사용가능하다.)

 

Abstract는 개념적으로 계층적인 구조에서 사용이 되며, Interface는 계층적인 구조가 아니더라도 같은 기능을 구현해야 할 때 사용합니다.

'Study > Unity' 카테고리의 다른 글

Garbage Collection (GC)  (0) 2021.06.01
(C#) Coroutine  (0) 2021.05.31
데이터 저장하기  (0) 2020.09.19
Unity에서 GameCenter 적용시키기  (0) 2020.08.20
MVC Pattern - Design pattern  (0) 2020.06.07