나는 그것에 관련이 있다고 말할 수 있습니다. OO와 C #에 대해 처음 배우기 시작했을 때 인터페이스도 얻지 못했습니다. 괜찮아. 우리는 인터페이스의 편의성을 높이기 위해 무언가를 가져와야합니다.
두 가지 접근 방식을 시도하겠습니다. 그리고 일반화를 위해 나를 용서하십시오.
시도 1
영어를 모국어로 사용한다고 가정 해 보겠습니다. 영어가 모국어가 아닌 다른 국가로갑니다. 도움이 필요합니다. 당신을 도울 수있는 사람이 필요합니다.
"이봐 요, 미국에서 태어 났나요?" 이것이 상속입니다.
아니면 "이봐, 영어 할 줄 알아?" 인터페이스입니다.
그것이하는 일에 관심이 있다면, 인터페이스에 의존 할 수 있습니다. 당신이 무엇인지에 관심이 있다면, 당신은 상속에 의존합니다.
상속에 의존해도 괜찮습니다. 영어를하고, 차를 좋아하고, 축구를 좋아하는 사람이 필요하다면 영국인을 요구하는 것이 좋습니다. :)
시도 2
좋아, 다른 예를 들어 보자.
다른 데이터베이스를 사용하고 작업하려면 추상 클래스를 구현해야합니다. DB 공급 업체에서 클래스를 일부 클래스로 전달합니다.
public abstract class SuperDatabaseHelper
{
void Connect (string User, string Password)
}
public abstract class HiperDatabaseHelper
{
void Connect (string Password, string User)
}
다중 상속이라고합니까? 위의 경우로 시도하십시오. 당신은 할 수 없습니다. 컴파일러는 어떤 Connect 메서드를 호출하려고하는지 알 수 없습니다.
interface ISuperDatabaseHelper
{
void Connect (string User, string Password)
}
interface IHiperDatabaseHelper
{
void Connect (string Password, string User)
}
이제 C #에서는 인터페이스를 명시 적으로 구현할 수있는 작업이 있습니다.
public class MyDatabaseHelper : ISuperDatabaseHelper, IHiperDatabaseHelper
{
IHiperDataBaseHelper.Connect(string Password, string User)
{
//
}
ISuperDataBaseHelper.Connect(string User, string Password)
{
//
}
}
결론
예제는 최고는 아니지만 포인트가 맞다고 생각합니다.
인터페이스가 필요할 때만 "얻을"수 있습니다. 그들까지 당신은 그들이 당신을위한 것이 아니라고 생각할 것입니다.