나는 List<T>
이라는 선언문을보고 IList<T>
, ICollection<T>
및 IEnumerable<T>
을 구현한다는 것을 알았다.인터페이스가 다른 인터페이스를 구현하는 이유는 무엇입니까?
그런 다음 나는 IList<T>
의 정의를 보러 가서 ICollection<T>
과 IEnumerable<T>
을 구현하는 것을 보았습니다.
"계약서"처럼 작동하고 다른 인터페이스를 구현하는 인터페이스의 점은 무엇이며 코드를 쓰지 않으십니까?
이 구현은 누적됩니까? 그렇다면 IList<T>
은 ICollection<T>
과 IEnumerable<T>
을 구현하므로 List<T>
은 IList<T>
을 구현하지 않아야하나요?
죄송합니다. 제 질문이 혼란 스럽다면, 지금 당황 스럽습니다.
가독성을위한 것입니다. 가장 중요한 계약을보기 위해 더 이상 갈 필요가 없습니다. 또한 'IList'이 ICollection 구현을 멈추는 경우에도 계약이 크게 변경되지 않도록 보장합니다. –
zerkms
실제로 인터페이스는 아무것도 구현하지 않지만 다른 인터페이스는 상속받을 수 있습니다. –
@zerkms : 답변을 작성해야합니다! – Ryan