Rozhraní (Visual Basic)
Rozhraní definovat vlastnosti, metody a události, které třídy mohou implementovat.Rozhraní umožňují definovat funkce jako malé skupiny úzce souvisejících vlastností, metod a událostí; protože vaše rozhraní můžete vytvořit rozšířené implementace bez ohrožující existující kód sníží potíže s kompatibilitou.Vývoj, implementace a další rozhraní, můžete přidat nové funkce kdykoli.
Existuje několik důvodů proč byste měli používat namísto dědičnost třídy rozhraní:
Rozhraní jsou lépe hodí na situace, ve kterých aplikace vyžadují že mnoho typů objektů určitých funkcí pravděpodobně nesouvisí.
Rozhraní jsou flexibilnější než základní třídy, protože můžete definovat jeden implementace, která lze implementovat více rozhraní.
Rozhraní jsou lepší v situacích, ve kterých jste provedení dědit ze základní třídy.
Rozhraní jsou užitečné, pokud nelze použít dědičnost třídy.Například struktury nemohou dědit ze třídy, ale implementují rozhraní.
Deklaraci rozhraní
Definice rozhraní jsou uzavřeny Interface a End Interface příkazy.Následující Interface prohlášení, můžete přidat volitelného Inherits prohlášení, které obsahuje jedno nebo více zděděné rozhraní.Inherits Prohlášení musí předcházet všechny příkazy v prohlášení, s výjimkou poznámek.The remaining statements in the interface definition should be Event, Sub, Function, Property, Interface, Class, Structure, and Enum statements.Rozhraní nemohou obsahovat žádné provádění kódu nebo příkazy, které jsou přidružené k provádění kódu, například End Sub nebo End Property.
V oboru názvů rozhraní příkazy jsou Friend ve výchozím nastavení, ale může také být explicitně deklarovány jako Public nebo Friend.Rozhraní jsou definována v rámci třídy, moduly, rozhraní a struktury jsou Public ve výchozím nastavení, ale může také být explicitně deklarovány jako Public, Friend, Protected, nebo Private.
[!POZNÁMKA]
Shadows Klíčové slovo, které lze použít pro všechny členy rozhraní.Overloads Lze použít klíčové slovo Sub, Function, a Property prohlášení deklarované v definici rozhraní.Kromě toho Property prohlášení může mít Default, ReadOnly, nebo WriteOnly modifikátory.None of the other modifiers—Public, Private, Friend, Protected, Shared, Overrides, MustOverride, or Overridable—are allowed.Další informace naleznete v tématu Kontexty deklarace a výchozí úrovně přístupu (Visual Basic).
Například následující kód definuje rozhraní s jednu funkci, jednu vlastnost a jedna událost.
Interface IAsset
Event ComittedChange(ByVal Success As Boolean)
Property Division() As String
Function GetID() As Integer
End Interface
Implementace rozhraní
Visual Basic Vyhrazené slovo Implements se používá dvěma způsoby.Implements Prohlášení označuje třídy nebo struktury implementuje rozhraní.Implements Klíčové slovo označuje třída člena nebo člena struktury implementuje specifické rozhraní člen.
Implementuje prohlášení
Pokud třídy nebo struktury implementuje jedno nebo více rozhraní, musí být Implements prohlášení bezprostředně po Class nebo Structure prohlášení.Implements Prohlášení vyžaduje čárkami oddělený seznam rozhraní, která mají být zavedena podle třídy.Třídy nebo struktury musí implementovat všechny členy rozhraní pomocí Implements klíčové slovo.
Klíčové slovo Implements
Implements Klíčové slovo vyžaduje čárkami oddělený seznam implementovat členy rozhraní.Obecně je určen pouze člen jediného rozhraní, ale můžete určit více členů.Specifikace člena rozhraní se skládá z názvu rozhraní, který musí být zadán v příkazu implementuje v rámci třídy; období; a název členské funkce, vlastnosti nebo události, které mají být provedeny.Název člena, který implementuje jako člen rozhraní můžete použít jakýkoliv povolený identifikátor a není omezena InterfaceName_MethodName úmluvy ve starších verzích Visual Basic.
Například následující kód ukazuje, jak deklarovat podprogram s názvem Sub1 , implementuje metody rozhraní:
Class Class1
Implements interfaceclass.interface2
Sub Sub1(ByVal i As Integer) Implements interfaceclass.interface2.Sub1
End Sub
End Class
Prohlášení rozhraní vlastnost nebo člen rozhraní musí odpovídat vratky typy prováděcí člena a typy parametrů.Nejběžnějším způsobem implementovat rozhraní prvku je člen, který má stejný název jako rozhraní, jak je znázorněno v předchozím příkladu.
Implementace metody rozhraní deklarovat, můžete použít všechny atributy, které jsou právní deklarace metody instance, včetně Overloads, Overrides, Overridable, Public, Private, Protected, Friend, Protected Friend, MustOverride, Default, a Static.Shared Atributu není právní, protože definuje třídu než metody instance.
Pomocí Implements, můžete také napsat jedinou metodu, která implementuje více metod, které jsou definované v rozhraní, jako v následujícím příkladu:
Class Class2
Implements I1, I2
Protected Sub M1() Implements I1.M1, I1.M2, I2.M3, I2.M4
End Sub
End Class
Soukromý člen můžete implementovat jako člen rozhraní.Při soukromý člen implementuje člen rozhraní, k dispozici v rámci rozhraní člena, i když není k dispozici přímo na objektové proměnné třídy.
Příklady implementace rozhraní
Třídy, které implementují rozhraní musí implementovat všechny její vlastnosti, metody a události.
Následující příklad definuje dvě rozhraní.Druhé rozhraní Interface2, zdědí Interface1 a definuje k další vlastnosti a metody.
Interface Interface1
Sub sub1(ByVal i As Integer)
End Interface
' Demonstrates interface inheritance.
Interface Interface2
Inherits Interface1
Sub M1(ByVal y As Integer)
ReadOnly Property Num() As Integer
End Interface
Další příklad implementuje Interface1, rozhraní definované v předchozím příkladu:
Public Class ImplementationClass1
Implements Interface1
Sub Sub1(ByVal i As Integer) Implements Interface1.sub1
' Insert code here to implement this method.
End Sub
End Class
Poslední příklad implementuje Interface2, včetně metody zděděné z Interface1:
Public Class ImplementationClass2
Implements Interface2
Dim INum As Integer = 0
Sub sub1(ByVal i As Integer) Implements Interface2.sub1
' Insert code here that implements this method.
End Sub
Sub M1(ByVal x As Integer) Implements Interface2.M1
' Insert code here to implement this method.
End Sub
ReadOnly Property Num() As Integer Implements Interface2.Num
Get
Num = INum
End Get
End Property
End Class
Příbuzná témata
Title |
Description |
---|---|
Obsahuje podrobný postup, který vás provede procesem definování a provádění vlastní rozhraní. |
|
Popisuje kovariance a contravariance v obecné rozhraní a poskytuje seznam variant obecné rozhraní v.NET Framework. |