MustInherit (Visual Basic)

Bir sınıfın yalnızca temel sınıf olarak kullanılana ve bundan doğrudan bir nesne oluşturamayabilirsiniz.

Açıklamalar

Bir temel sınıfın (soyut sınıf olarak da bilinir) amacı, bundan türetilen tüm sınıflar için ortak olan işlevselliği tanımlamaktır. Bu, türetilmiş sınıfları ortak öğeleri yeniden tanımlamak zorunda kalmadan kaydeder. Bazı durumlarda, bu ortak işlevsellik kullanılabilir bir nesne yapmak için yeterli değildir ve türetilen her sınıf eksik işlevselliği tanımlar. Böyle bir durumda, tüketen kodun yalnızca türetilmiş sınıflardan nesne oluşturması gerekir. Bunu zorlamak MustInherit için temel sınıfta kullanırsiniz.

Bir sınıfın başka MustInherit bir kullanımı da bir değişkeni bir dizi ilgili sınıfla kısıtlamaktır. Bir temel sınıf tanımlayabilir ve bu ilişkili sınıfların hepsini bu sınıftan türetabilirsiniz. Temel sınıfın türetilmiş tüm sınıflar için ortak bir işlev sağlaması gerekli değildir, ancak değişkenlere değer atamak için bir filtre işlevi de kullanabilir. Tüketen kodunuz bir değişkeni temel sınıf olarak bildirse Visual Basic türetilen sınıflardan yalnızca bir nesnesini bu değişkene atamanıza olanak sağlar.

Bu .NET Framework , ve MustInherit gibi çeşitli sınıfları Array Enum ValueType tanımlar. ValueType , bir değişkeni kısıtlayan temel sınıfa bir örnektir. Tüm değer türleri ' den ValueType türetildi. Bir değişkeni olarak ValueType bildirersiniz, bu değişkene yalnızca değer türleri at atfetin.

Kurallar

  • Bildirim Bağlamı. Yalnızca MustInherit deyiminde Class kullanabilirsiniz.

  • Birleşik Değiştiriciler. Aynı MustInherit bildirimde ile NotInheritable birlikte belirtemezseniz.

Örnek

Aşağıdaki örnek hem zorlamalı devralmayı hem de zorlamalı geçersiz kılmayı gösterir. Temel sınıf bir shape değişken acrossLine tanımlar. ve circle sınıflarından square shape türetildi. işlevinin tanımını devralındırabilir ancak bu hesaplama her şekil için farklı olduğundan acrossLine area işlevi tanımlamaları gerekir.

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

ve türünü shape1 shape2 bildiresiniz. shape Ancak işlevin işlevselliği eksik olduğundan ve shape olarak işaretlenir. area MustInherit

olarak shape bildirildiklerinden, değişkenleri ve türetilmiş shape1 shape2 sınıflardan ve nesneleriyle circle square sınırlıdır. Visual Basic, bu değişkenlere başka bir nesne atamaya izin vermez ve bu da size yüksek tür güvenliği sağlar.

Kullanım

Değiştirici MustInherit şu bağlamda kullanılabilir:

Class Deyimi

Ayrıca bkz.