COM class와 통신하는 방법에서 사용되었던 Interface를 C#에서 옮겨온 방법
- C++에서는 pure virtual 함수를 이용한 interface의 구현으로 되었다.
- C#에서는 Interface를 이용하는 방법이 프로그램의 디자인적 방법으로 구현되었다.
Interface의 특성
- 암시적으로 Public
- 암시적으로 Abstract
- ALL OR NONE 명제를 따르게 된다.
- 여러개의 interface를 상속가능하기 때문에, C++의 특징인 다중 상속과 비슷한 방법으로 구현이 가능하다.
추상 메서드 vs interface
- interface는 순수한 프로토컬만의 기능을 가지고 있다.
- 또 다른 방법의 다형적 동작이 가능한 프로그래밍이 가능하다.
- 언제나 public이기 때문에 구현에 대해서 생각을 해줘야지 된다. : 객체내에서만 사용이 되는 것을 interface로 구현해줄 필요는 전혀 없다.
- interface의 범위를 제한하기 위한 방법 : 언제나 공개적이고, 구현이 되어야지 된다.
인터페이스의 참조
- as : 해당되는 interface의 구현 여부를 알아본다.
- is : 인터페이스를 얻어낼 수 있다. (실패하면 null이 반환된다.)