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 pernyataan Class.

  • Pengubah Gabungan. Anda tidak bisa menentukan MustInherit bersama dengan NotInheritable 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:

Pernyataan Kelas

Lihat juga