Rozhraní (Příručka programování C#)
Rozhraní jsou popsány skupiny souvisejících funkcí, které patří do libovolné třídy nebo struct.Definice rozhraní pomocí rozhraní klíčové slovo, jak ukazuje následující příklad.
interface IEquatable<T>
{
bool Equals(T obj);
}
Rozhraní se skládá z metody, vlastnosti, události, indexování nebo libovolnou kombinaci těchto typů čtyř členů.Rozhraní nemohou obsahovat konstanty, pole, operátory, instance konstruktory, destruktory nebo typy.Nesmí obsahovat statické členy.Členy rozhraní jsou automaticky veřejné a neobsahují žádné modifikátory přístupu.
Při třídy nebo struct implementuje rozhraní, třídy nebo struct poskytuje implementaci všech členů definovaných rozhraní.Samotné rozhraní obsahuje žádná funkce, které třídy nebo struct může zdědit způsobem, že funkce základní třídy lze dědit.Pokud je základní třída implementuje rozhraní, zdědí odvozené třídy plnění.Odvozené třídy se říká implicitně implementovat rozhraní.
Třídy a struktur implementovat rozhraní způsobem podobným jak dědění tříd základní třídu nebo struct se dvěma výjimkami:
Třídy nebo struct implementovat více rozhraní.
Při třídy nebo struct implementuje rozhraní, obdrží pouze názvy metod a podpisy, protože samotné rozhraní obsahuje žádné implementace, jak ukazuje následující příklad.
public class Car : IEquatable<Car> { public string Make {get; set;} public string Model { get; set; } public string Year { get; set; } // Implementation of IEquatable<T> interface public bool Equals(Car car) { if (this.Make == car.Make && this.Model == car.Model && this.Year == car.Year) { return true; } else return false; } }
IEquatable<T> Rozhraní ohlášen uživateli na objekt, který objekt můžete určit, zda je rovna jiné objekty stejného typu a není nutné znát způsob implementace uživatelského rozhraní.
Chcete-li implementovat jako člen rozhraní musí odpovídající člen třídy být veřejnosti, které nejsou statické a mít stejné jméno a podpis jako člen rozhraní.Vlastnosti a indexování třídy můžete definovat další přístupové objekty pro vlastnost nebo indexovací člen v rozhraní definována.Rozhraní může být například deklarovat vlastnost, která má get přístupový objekt.Třída, která implementuje rozhraní deklarovat stejnou vlastnost s oběma získat a set přístupový objekt.Pokud vlastnost nebo indexovací člen používá explicitní implementace, musí však odpovídat přístupové objekty.Další informace o explicitní implementaceVlastnosti (Příručka programování C#) rozhraní
Rozhraní a členy rozhraní jsou abstraktní; rozhraní neposkytují výchozí implementace.Další informace naleznete v tématu abstraktní a uzavřených tříd a členů tříd.
Rozhraní může dědit jiná rozhraní.Je možné, že třída dědí rozhraní několikrát, základní třídy, které dědí nebo prostřednictvím rozhraní, které jsou zděděny jiná rozhraní.Však může třída implementovat rozhraní pouze jeden čas a pouze v případě, že rozhraní je deklarován jako část definice třídy, jako v class ClassName : InterfaceName.Pokud je zděděna rozhraní, protože zděděné základní třídy, která implementuje rozhraní, jeho provádění poskytuje základní třídy.Je také možné implementovat členy rozhraní pomocí virtuální členy základní třída.V takovém případě odvozené třídy můžete změnit chování rozhraní přepsání virtuální členů.Další informace o virtuálních členy viz polymorfismus.
Přehled rozhraní
Rozhraní má následující vlastnosti:
Rozhraní je jako základní třídy: neabstraktním typu, která implementuje rozhraní musí implementovat všechny členy.
Rozhraní nelze vytvořit instanci přímo.
Rozhraní může obsahovat události, indexování, metody a vlastnosti.
Rozhraní obsahovat žádná implementace metody.
Třídy a struktur lze implementovat více rozhraní.
Samotné rozhraní může dědit z více rozhraní.
V tomto oddíle
Explicitní implementace rozhraní (Příručka programování C#)
Vysvětluje, jak vytvořit člen třídy, který je specifický pro rozhraní.Jak: explicitní implementace rozhraní členů (Příručka programování C#)
Poskytuje příklad jak explicitně implementovat členy rozhraní.Jak: explicitně dvě implementovat členy rozhraní (C# programování Guide)
Poskytuje příklad jak explicitně implementovat členy rozhraní s dědičností.
Související oddíly
Vlastnosti (Příručka programování C#) rozhraní
Vysvětluje, jak deklarovat vlastnosti rozhraní.Indexování v rozhraních (Příručka programování C#)
Vysvětluje, jak deklarovat indexovací členy rozhraní.Jak: implementace rozhraní události (Příručka programování C#)
Ukazuje, jak deklarovat události rozhraní.Třídy a struktur (Příručka programování C#)
Popisuje, jak C# používá objekty, třídy a struktur.Dědičnost (Příručka programování C#)
Vysvětluje, jak C# implementuje dědičnosti.Metody (Příručka programování C#)
Vysvětluje principy metod s názvem model programování C#.Polymorfismus (Příručka programování C#)
Popisuje použití tříd jako více než jeden typ v jazyce C#.Abstraktní a uzavřených tříd a členů tříd (Příručka programování C#)
Popisuje, jak se abstract a sealed klíčových slov ovlivní dědičnost.Vlastnosti (Příručka programování C#)
Tento článek vysvětluje pojem vlastnosti v jazyce C#.Události (Příručka programování C#)
Tento článek vysvětluje pojem události v jazyce C#.Indexování (Příručka programování C#)
Tento článek vysvětluje pojem indexování v jazyce C#.
Kapitola hlavní knihy
InterfacesvLearning C# 3.0: Master the Fundamentals of C# 3.0
Viz také
Referenční dokumentace
Dědičnost (Příručka programování C#)