c# 인터페이스(interface) 그리고 IComparable, IDisposable 무엇
이번 글에서는 C#에서 사용되는 인터페이스(interface)라는
기능에 대해서 공부해본 내용을 정리해보겠습니다.
인터페이스는 사용자가 코딩을 할 때 이런건
지켜주라고 가이드라인을 주는 것과 비슷합니다.
그래서 자기 마음대로 코딩하는 사람이 있다면,
그것을 방지할 수 있겠죠.
IComparable 사용방법
대표적인 인터페이스로는 IComparable 이 있습니다.
이름 그대로 비교를 할 수 있게하는 인터페이스인데요.
여기서 대문자 I로 시작을 하는데
인터페이스는 암묵적으로 대문자I로 시작을 하자고 정했기 때문입니다.
위 Product클레스 에서는 IComparable 인터페이스를 상속받았습니다.
그렇기 때문에 CompareTo를 무조건 구현을 해주어야 합니다.
(그래서 밑에 매서드가 구현된 것을 알 수 있죠.)
그리고 메인에서 사용을 해보겠습니다.
IComparable을 상속받았기 때문에
.Sort()매서드를 사용하여 정상적으로 정렬이 가능합니다.
그렇기 때문에 결과는 위와같이
price값으로 정렬이 되어서 출력이 되는 모습을 확인할 수 있습니다.
c# IDisposable 사용방법
그 다음은 IDisposable인터페이스 입니다.
이 녀석은 using블록이 사용될 떄 때 자동으로 호출됩니다.
Dummy클레스는 IDisposable을 상속 받았기 때문에
using에서 사용하게되면 구문이 끝나게될 때 자동으로 Dispose() 매서드가 실행됩니다.
위 결과 처럼 말이죠.
그 다음은 이제 사용자가 인터페이스를 만들어 주는 방법입니다.
위처럼 interface 그리고 I인터페이스 이름 이렇게 지정해줍니다.
멤버로는 인스턴스 매서드, 속성 을 넣을 수 있습니다.
이 때 구현은 할 수 없습니다.
구현은 상속받는 클래스 내부에서 해주면됩니다.
위와 같이 상속받은 클래스는 IBasic인터페이스가 가진 멤버를
모두 정의해 준 것을 알 수 있습니다.
(해주지 않으면 오류)
이렇게 해서 C#의 인터페이스(interface)에 대해서 알아보았는데요?
사실 C#에서는 클래스가 단 하나의 부모클래스 밖에 상속을 할 수 없습니다.
그래서 다중상속이 필요한 경우에는 인터페이스를 사용하게됩니다.
왜냐하면 클래스와는 다르게 인스턴스는 한 개 이상을 상속할 수 있기 때문입니다.
그렇다면 하나의 클래스가 다형성을 가지고 활용이 될 수 있겠죠.
▼C#관련된 다른 공부 하기▼
'C#(.NET)' 카테고리의 다른 글
C# 예외처리, 고급예외처리 (try, catch, finally, throw) 적용시키기 (1) | 2017.12.03 |
---|---|
[C#] 쓰레드(Thread) 사용방법 + start() 메서드(method) (0) | 2017.11.22 |
[C#] Dictionary 메모화 객체 사용하는 방법 효율적! (2) | 2017.10.29 |
C#프로그래밍 연습문제 Part1 (4) | 2017.10.22 |
[c#] foreach 반목문 갖다뽀개버리기 (8) | 2017.10.20 |