MustInherit (Visual Basic)
Menentukan bahwa kelas hanya dapat digunakan sebagai kelas dasar dan Anda tidak dapat membuat objek langsung darinya.
Keterangan
Tujuan dari kelas dasar (juga dikenal sebagai kelas abstrak) adalah untuk menentukan fungsionalitas yang umum untuk semua kelas yang berasal darinya. Ini membuat kelas turunan tidak perlu menentukan ulang elemen umum. Dalam beberapa kasus, fungsionalitas umum ini tidak cukup lengkap untuk membuat objek yang dapat digunakan, dan setiap kelas turunan menentukan fungsionalitas yang hilang. Dalam kasus seperti itu, Anda ingin kode yang digunakan untuk membuat objek hanya dari kelas turunan. Anda menggunakan MustInherit
pada kelas dasar untuk memberlakukan ini.
Penggunaan lain dari kelas MustInherit
adalah membatasi variabel ke sekumpulan kelas terkait. Anda dapat menentukan kelas dasar dan memperoleh semua kelas yang terkait ini darinya. Kelas dasar tidak perlu menyediakan fungsionalitas apa pun yang umum untuk semua kelas turunan, tetapi dapat berfungsi sebagai filter untuk menetapkan nilai ke variabel. Jika kode konsumsi Anda mendeklarasikan variabel sebagai kelas dasar, Visual Basic memungkinkan Anda untuk menetapkan objek saja dari salah satu kelas turunan ke variabel tersebut.
.NET Framework mendefinisikan beberapa kelas MustInherit
, di antaranya adalah Array, Enum, dan ValueType. ValueType adalah contoh kelas dasar yang membatasi variabel. Semua jenis nilai berasal dari ValueType. Jika variabel dideklarasikan sebagai ValueType, Anda hanya dapat menetapkan jenis nilai ke variabel tersebut.
Aturan
Konteks Deklarasi. Anda dapat menggunakan
MustInherit
hanya dalam pernyataanClass
.Pengubah Gabungan. Anda tidak bisa menentukan
MustInherit
bersama denganNotInheritable
dalam deklarasi yang sama.
Contoh
Contoh berikut mengilustrasikan warisan paksa dan penimpaan paksa. Kelas dasar shape
menentukan variabel acrossLine
. Kelas circle
dan square
berasal dari shape
. Mereka mewarisi definisi acrossLine
, tetapi harus menentukan fungsi area
karena penghitungan tersebut berbeda untuk setiap jenis bentuk.
Public MustInherit Class shape
Public acrossLine As Double
Public MustOverride Function area() As Double
End Class
Public Class circle : Inherits shape
Public Overrides Function area() As Double
Return Math.PI * acrossLine
End Function
End Class
Public Class square : Inherits shape
Public Overrides Function area() As Double
Return acrossLine * acrossLine
End Function
End Class
Public Class consumeShapes
Public Sub makeShapes()
Dim shape1, shape2 As shape
shape1 = New circle
shape2 = New square
End Sub
End Class
Anda dapat mendeklarasikan shape1
dan shape2
sebagai jenis shape
. Namun, Anda tidak dapat membuat objek dari shape
karena tidak memiliki fungsionalitas fungsi area
dan ditandai MustInherit
.
Karena mereka dinyatakan sebagai shape
, variabel shape1
dan shape2
dibatasi untuk objek dari kelas turunan circle
dan square
. Visual Basic tidak mengizinkan Anda untuk menetapkan objek lain ke variabel ini, sehingga memberikan tingkat keamanan jenis yang tinggi.
Penggunaan
Pengubah MustInherit
dapat digunakan dalam konteks ini:
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk