Sdílet prostřednictvím


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

Návod: Vytvoření a implementace rozhraní (Visual Basic)

Obsahuje podrobný postup, který vás provede procesem definování a provádění vlastní rozhraní.

Odchylky obecných rozhraní (C# and Visual Basic)

Popisuje kovariance a contravariance v obecné rozhraní a poskytuje seznam variant obecné rozhraní v.NET Framework.