Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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
Pastikan variabel yang ingin Anda sembunyikan dideklarasikan pada tingkat kelas (di luar prosedur apa pun). Jika tidak, Anda tidak perlu menyembunyikannya.
Di dalam kelas turunan Anda, tulis Pernyataan Dim yang mendeklarasikan variabel Anda. Gunakan nama yang sama dengan variabel yang diwariskan.
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 ClassContoh sebelumnya mendeklarasikan variabel
shadowStringdi kelas dasar dan membayanginya di kelas turunan. ProsedurShowStringsdi kelas turunan menampilkan versi bayangan string ketika namashadowStringtidak memenuhi syarat. Kemudian menampilkan versi bayangan ketikashadowStringmemenuhi syarat denganMyBasekata 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
- Referensi ke Elemen yang Dideklarasikan
- Pemayungan di Visual Basic
- Perbedaan Antara Bayangan dan Penimpaan
- Cara: Menyembunyikan Variabel dengan Nama yang Sama dengan Variabel Anda
- Cara: Mengakses Variabel yang Disembunyikan oleh Kelas Turunan
- Mengabaikan
- Saya, My, MyBase, dan MyClass
- Dasar-Dasar Pewarisan