Bagikan melalui


MustInherit (Visual Basic)

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

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

Pernyataan Kelas

Lihat juga