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.
Menentukan bahwa kelas hanya dapat digunakan sebagai kelas dasar dan Anda tidak dapat membuat objek langsung dari kelas tersebut.
Komentar
Tujuan dari kelas dasar (juga dikenal sebagai kelas abstrak) adalah untuk menentukan fungsionalitas yang umum untuk semua kelas yang berasal darinya. Ini menghemat kelas turunan dari harus 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 MustInherit kelas adalah membatasi variabel ke sekumpulan kelas terkait. Anda dapat menentukan kelas dasar dan memperoleh semua kelas 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 hanya objek dari salah satu kelas turunan ke variabel tersebut.
.NET Framework mendefinisikan beberapa MustInherit kelas, di antaranya Array, , Enumdan ValueType.
ValueType adalah contoh kelas dasar yang membatasi variabel. Semua jenis nilai berasal dari ValueType. Jika Anda mendeklarasikan variabel sebagai ValueType, Anda hanya dapat menetapkan jenis nilai ke variabel tersebut.
Aturan
Konteks Deklarasi. Anda hanya dapat menggunakan
MustInheritdalam pernyataanClass.Pengubah Gabungan. Anda tidak dapat menentukan
MustInheritbersama-sama denganNotInheritabledalam deklarasi yang sama.
Contoh
Contoh berikut mengilustrasikan warisan paksa dan penimpaan paksa. Kelas shape dasar mendefinisikan variabel acrossLine.
circle Kelas dan square berasal dari shape. Mereka mewarisi definisi acrossLine, tetapi harus menentukan fungsi area karena perhitungan 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 menjadi tipe 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 memungkinkan Anda menetapkan objek lain ke variabel ini, yang memberi Anda tingkat keamanan tipe yang tinggi.
Penggunaan
Pengubah MustInherit dapat digunakan dalam konteks ini: