Bagikan melalui


Pernyataan Antarmuka (Visual Basic)

Mendeklarasikan nama antarmuka dan memperkenalkan definisi anggota yang terdiri dari antarmuka.

Sintaksis

[ <attributelist> ] [ accessmodifier ] [ Shadows ] _  
Interface name [ ( Of typelist ) ]  
    [ Inherits interfacenames ]  
    [ [ modifiers ] Property membername ]  
    [ [ modifiers ] Function membername ]  
    [ [ modifiers ] Sub membername ]  
    [ [ modifiers ] Event membername ]  
    [ [ modifiers ] Interface membername ]  
    [ [ modifiers ] Class membername ]  
    [ [ modifiers ] Structure membername ]  
End Interface  

Bagian

Istilah Definisi
attributelist Fakultatif. Lihat Daftar Atribut.
accessmodifier Fakultatif. Dapat berupa salah satu hal berikut:

- Umum
- Dilindungi
- Teman
- Swasta
- Teman yang Dilindungi
- Dilindungi Privat

Lihat Tingkat akses di Visual Basic.
Shadows Fakultatif. Lihat Bayangan.
name Dibutuhkan. Nama antarmuka ini. Lihat Nama Elemen yang Dideklarasikan.
Of Fakultatif. Menentukan bahwa ini adalah antarmuka generik.
typelist Diperlukan jika Anda menggunakan kata kunci Dari . Daftar parameter jenis untuk antarmuka ini. Secara opsional, setiap parameter jenis dapat dideklarasikan varian dengan menggunakan In dan Out pengubah generik. Lihat Daftar Jenis.
Inherits Fakultatif. Menunjukkan bahwa antarmuka ini mewarisi atribut dan anggota antarmuka atau antarmuka lain. Lihat Pernyataan Warisan.
interfacenames Diperlukan jika Anda menggunakan Inherits pernyataan . Nama antarmuka tempat antarmuka ini berasal.
modifiers Fakultatif. Pengubah yang sesuai untuk anggota antarmuka yang ditentukan.
Property Fakultatif. Menentukan properti yang merupakan anggota antarmuka.
Function Fakultatif. Function Menentukan prosedur yang merupakan anggota antarmuka.
Sub Fakultatif. Sub Menentukan prosedur yang merupakan anggota antarmuka.
Event Fakultatif. Menentukan peristiwa yang merupakan anggota antarmuka.
Interface Fakultatif. Mendefinisikan antarmuka yang berlapis dalam antarmuka ini. Definisi antarmuka berlapis harus dihentikan dengan End Interface pernyataan.
Class Fakultatif. Mendefinisikan kelas yang merupakan anggota antarmuka. Definisi kelas anggota harus dihentikan dengan End Class pernyataan.
Structure Fakultatif. Mendefinisikan struktur yang merupakan anggota antarmuka. Definisi struktur anggota harus dihentikan dengan End Structure pernyataan.
membername Diperlukan untuk setiap properti, prosedur, peristiwa, antarmuka, kelas, atau struktur yang didefinisikan sebagai anggota antarmuka. Nama anggota.
End Interface Interface Mengakhiri definisi.

Komentar

Antarmuka mendefinisikan sekumpulan anggota, seperti properti dan prosedur, yang dapat diterapkan oleh kelas dan struktur. Antarmuka hanya mendefinisikan tanda tangan anggota dan bukan pekerjaan internal mereka.

Kelas atau struktur mengimplementasikan antarmuka dengan menyediakan kode untuk setiap anggota yang ditentukan oleh antarmuka. Terakhir, ketika aplikasi membuat instans dari kelas atau struktur tersebut, objek ada dan berjalan dalam memori. Untuk informasi selengkapnya, lihat Objek dan Kelas dan Antarmuka.

Anda hanya dapat menggunakan Interface di namespace layanan atau tingkat modul. Ini berarti konteks deklarasi untuk antarmuka harus berupa file sumber, namespace, kelas, struktur, modul, atau antarmuka, dan tidak dapat menjadi prosedur atau blok. Untuk informasi selengkapnya, lihat Konteks Deklarasi dan Tingkat Akses Bawaan.

Antarmuka default ke akses Teman . Anda dapat menyesuaikan tingkat aksesnya dengan pengubah akses. Untuk informasi selengkapnya, lihat Tingkat akses di Visual Basic.

Aturan

  • Antarmuka Berlapis. Anda dapat menentukan satu antarmuka dalam antarmuka lain. Antarmuka luar disebut antarmuka yang berisi, dan antarmuka dalam disebut antarmuka berlapis.

  • Deklarasi Anggota. Saat Anda mendeklarasikan properti atau prosedur sebagai anggota antarmuka, Anda hanya menentukan tanda tangan properti atau prosedur tersebut. Ini termasuk jenis elemen (properti atau prosedur), parameter dan jenis parameternya, dan jenis pengembaliannya. Karena itu, definisi anggota hanya menggunakan satu baris kode, dan mengakhiri pernyataan seperti End Function atau End Property tidak valid dalam antarmuka.

    Sebaliknya, ketika Anda menentukan enumerasi atau struktur, atau kelas atau antarmuka berlapis, perlu untuk menyertakan anggota data mereka.

  • Pengubah Anggota. Anda tidak dapat menggunakan pengubah akses apa pun saat menentukan anggota modul, Anda juga tidak dapat menentukan Pengubah bersama atau prosedur apa pun kecuali Kelebihan Beban. Anda dapat mendeklarasikan anggota mana pun dengan Shadows, dan Anda dapat menggunakan Default saat menentukan properti, serta ReadOnly atau WriteOnly.

  • Turunan. Jika antarmuka menggunakan Pernyataan Warisan, Anda dapat menentukan satu atau beberapa antarmuka dasar. Anda dapat mewarisi dari dua antarmuka bahkan jika masing-masing menentukan anggota dengan nama yang sama. Jika Anda melakukannya, kode penerapan harus menggunakan kualifikasi nama untuk menentukan anggota mana yang diterapkannya.

    Antarmuka tidak dapat mewarisi dari antarmuka lain dengan tingkat akses yang lebih ketat. Misalnya, Public antarmuka tidak dapat mewarisi dari Friend antarmuka.

    Antarmuka tidak dapat mewarisi dari antarmuka yang berlapis di dalamnya.

  • Pelaksanaan. Ketika kelas menggunakan pernyataan Implements untuk mengimplementasikan antarmuka ini, kelas harus mengimplementasikan setiap anggota yang ditentukan dalam antarmuka. Selain itu, setiap tanda tangan dalam kode penerapan harus sama persis dengan tanda tangan yang sesuai yang ditentukan dalam antarmuka ini. Namun, nama anggota dalam kode penerapan tidak harus cocok dengan nama anggota seperti yang didefinisikan dalam antarmuka.

    Ketika kelas menerapkan prosedur, kelas tidak dapat menunjuk prosedur sebagai Shared.

  • Properti Default. Antarmuka dapat menentukan paling banyak satu properti sebagai properti defaultnya, yang dapat dirujuk tanpa menggunakan nama properti. Anda menentukan properti seperti itu dengan mendeklarasikannya dengan pengubah Default .

    Perhatikan bahwa ini berarti bahwa antarmuka dapat menentukan properti default hanya jika mewarisi tidak ada.

Perilaku

  • Tingkat Akses. Semua anggota antarmuka secara implisit memiliki akses Publik . Anda tidak dapat menggunakan pengubah akses apa pun saat menentukan anggota. Namun, kelas yang mengimplementasikan antarmuka dapat mendeklarasikan tingkat akses untuk setiap anggota yang diimplementasikan.

    Jika Anda menetapkan instans kelas ke variabel, tingkat akses anggotanya dapat bergantung pada apakah jenis data variabel adalah antarmuka yang mendasar atau kelas penerapan. Contoh berikut mengilustrasikan hal ini.

    Public Interface IDemo
        Sub DoSomething()
    End Interface
    Public Class implementIDemo
        Implements IDemo
        Private Sub DoSomething() Implements IDemo.DoSomething
        End Sub
    End Class
    Dim varAsInterface As IDemo = New implementIDemo()
    Dim varAsClass As implementIDemo = New implementIDemo()
    

    Jika Anda mengakses anggota kelas melalui varAsInterface, mereka semua memiliki akses publik. Namun, jika Anda mengakses anggota melalui varAsClass, prosedur doSomething memiliki Sub akses privat.

  • Ruang lingkup. Antarmuka berada dalam cakupan di seluruh namespace, kelas, struktur, atau modulnya.

    Cakupan setiap anggota antarmuka adalah seluruh antarmuka.

  • Seumur hidup. Antarmuka tidak memiliki masa pakai, juga anggotanya. Ketika kelas mengimplementasikan antarmuka dan objek dibuat sebagai instans kelas tersebut, objek memiliki masa pakai dalam aplikasi tempatnya berjalan. Untuk informasi selengkapnya, lihat "Seumur Hidup" di Pernyataan Kelas.

Contoh

Contoh berikut menggunakan Interface pernyataan untuk menentukan antarmuka bernama thisInterface, yang harus diimplementasikan dengan Property pernyataan dan Function pernyataan.

Public Interface thisInterface
    Property ThisProp(ByVal thisStr As String) As Char
    Function ThisFunc(ByVal thisInt As Integer) As Integer
End Interface

Perhatikan bahwa Property pernyataan dan Function tidak memperkenalkan blok yang berakhiran dengan End Property dan End Function di dalam antarmuka. Antarmuka hanya mendefinisikan tanda tangan anggotanya. Blok dan Function penuh Property muncul di kelas yang mengimplementasikan thisInterface.

Lihat juga