C#과 Java언어 비교(8) - Interfaces
C# and JAVA 2007. 5. 29. 11:06http://genamics.com/developer/csharp_comparative_part8.htm
12. 인터페이스(Interfaces)
C#의 인터페이스는 Java의 인터페이스와 유사하지만 더 높은 유연성을 갖고 사용될 수 있다.
어떠한 클래스도 “명시적으로” 인터페이스를 구현할 수 있다:
public interface ITeller
{
void Next ();
}
public interface IIterator
{
void Next ();
}
public class Clark : ITeller, IIterator
{
void ITeller.Next () {
}
void IIterator.Next () {
}
}
위에서 주어진 클래스는 두 가지 이점을 갖는다. 첫째는 하나의 클래스가 이름 충돌(naming conflicts)을
걱정하지 않고도 여러 인터페이스를 구현할 수 있다는 것이다. 두번째는 클래스가 그 클래스의 일반 사용자에게
유용하지 않을 경우 한 메소드를 “숨기도록” 해준다. 명시적으로 구현된 메소드는 필요한 인터페이스로
클래스 형변환을 통해 호출될 수 있다.
Clark clark = new Clark ();
((ITeller)clark ).Next();