Bagikan melalui


Cara: Menyembunyikan Variabel yang Diwariskan (Visual Basic)

Kelas turunan mewarisi semua definisi kelas dasarnya. Jika Anda ingin menentukan variabel menggunakan nama yang sama dengan elemen kelas dasar, Anda dapat menyembunyikan, atau membayangi, elemen kelas dasar tersebut saat menentukan variabel Anda di kelas turunan. Jika Anda melakukan ini, kode di kelas turunan mengakses variabel Anda kecuali secara eksplisit melewati mekanisme bayangan.

Alasan lain Anda mungkin ingin menyembunyikan variabel yang diwariskan adalah untuk melindungi dari revisi kelas dasar. Kelas dasar mungkin mengalami perubahan yang mengubah elemen yang Anda warisi. Jika ini terjadi, pengubah Shadows memaksa referensi dari kelas turunan untuk diselesaikan ke variabel Anda, bukan ke elemen kelas dasar.

Untuk menyembunyikan variabel yang diwariskan

  1. Pastikan variabel yang ingin Anda sembunyikan dideklarasikan pada tingkat kelas (di luar prosedur apa pun). Jika tidak, Anda tidak perlu menyembunyikannya.

  2. Di dalam kelas turunan Anda, tulis Pernyataan Dim yang mendeklarasikan variabel Anda. Gunakan nama yang sama dengan variabel yang diwariskan.

  3. Sertakan kata kunci Bayangan dalam deklarasi.

    Ketika kode di kelas turunan mengacu pada nama variabel, pengkompilasi menyelesaikan referensi ke variabel Anda.

    Contoh berikut mengilustrasikan bayangan variabel yang diwariskan:

    Public Class ShadowBaseClass  
        Public shadowString As String = "This is the base class string."  
    End Class  
    Public Class ShadowDerivedClass  
        Inherits ShadowBaseClass  
        Public Shadows shadowString As String = "This is the derived class string."  
        Public Sub ShowStrings()  
            Dim s As String = $"Unqualified shadowString: {shadowString}{vbCrLf}MyBase.shadowString: {MyBase.shadowString}"
            MsgBox(s)  
        End Sub  
    End Class  
    

    Contoh sebelumnya mendeklarasikan variabel shadowString di kelas dasar dan membayanginya di kelas turunan. Prosedur ShowStrings di kelas turunan menampilkan versi bayangan string ketika nama shadowString tidak memenuhi syarat. Kemudian menampilkan versi bayangan ketika shadowString memenuhi syarat dengan MyBase kata kunci.

Pemrograman yang kuat

Shadowing memperkenalkan lebih dari satu versi variabel dengan nama yang sama. Ketika pernyataan kode mengacu pada nama variabel, versi tempat pengkompilasi menyelesaikan referensi tergantung pada faktor-faktor seperti lokasi pernyataan kode dan keberadaan string yang memenuhi syarat. Ini dapat meningkatkan risiko merujuk pada versi yang tidak diinginkan dari variabel yang tertutupi. Anda dapat menurunkan risiko tersebut dengan sepenuhnya memenuhi syarat semua referensi ke variabel yang di bayangan.

Lihat juga