Can Interfaces可以替代C#中的多重繼承嗎?Can Interfaces可以替代C#中的多重繼承嗎?
這是一個重複:Should C# have multiple inheritance?
Can Interfaces可以替代C#中的多重繼承嗎?Can Interfaces可以替代C#中的多重繼承嗎?
這是一個重複:Should C# have multiple inheritance?
多重繼承意味着你繼承多個基類的功能。由於接口定義了接口,而不是實現,所以答案是否定的。
在某種程度上,是的。通過使用接口可以擴展繼承提供的經典「is-a」關係。這意味着,如果一個類從另一個類繼承,並實現3個接口,則可以將該類的一個對象傳遞給一個方法,該方法將基類或任何三個接口作爲參數。所以,從某種意義上說,這個班級「是 - 」是4種不同的東西之一。說得通?
概念上,接口可以讓你有多個is-a與其他類別的關係。這是爲什麼使用多重繼承的一部分。
例如,
public class TradeReport : IReport, ITrade, IComplianceRecord
提供上述類實現了所有三個接口的方法有意義,你可以用它來形容報告,貿易,以及合規記錄。
但是,這是限制。接口中沒有實現繼承。