MustInherit (Visual Basic)

Bir sınıfı yalnızca temel bir sınıf olarak kullanılabilir ve doğrudan bir nesne oluşturulamıyor belirtir.

Notlar

Amacı, bir temel sýnýf (olarak da bilinen bir soyut bir sınıf) ondan türetilmiş tüm sınıflar ortak işlevselliği tanımlamaktır.Bu, türetilmiş sınıflar ortak öğeleri yeniden tanımlamak zorunda kalmazsınız.Bazı durumlarda, bu ortak işlevler kullanılabilir nesne yapmak için tam değildir ve eksik işlevselliği her türetilen bir sınıfı tanımlar.Böyle bir durumda, yalnızca türetilmiş sınıflardan nesneleri oluşturmak için kaybı kodunu istediğiniz.Kullandığınız MustInherit bu zorlamak için temel sınıf üzerinde.

Başka bir kullanımı, bir MustInherit sınıftır ilgili sınıfları bir dizi değişken sınırlamak için.Bir temel sınıf tanımlamak ve bu ilgili tüm sınıflar sağlanmasıdır.Türetilmiş sınıfları için ortak herhangi bir işlevsellik sağlamak temel sınıf gerekmez, ancak değişkenler için değerleri atamak için bir filtre olarak hizmet verebilir.Kaybı kodunuzu değişken temel sınıf olarak bildirirse, Visual Basic Bu değişken yalnızca bir nesne türetilmiş sınıfları birinden atamanıza izin verir.

.net Framework tanımlayan birkaç MustInherit sınıfları, aralarında Array, Enum, ve ValueType.ValueTypebir değişken sınırlayan bir temel sınıf örneğidir.Tüm değer tipleri öğesinden türetilmeli ValueType.Bir değişken olarak bildirirseniz ValueType, bu değişken yalnızca değer türleri atayabilirsiniz.

Kurallar

  • Bildiriminin içeriği. Kullanabileceğiniz MustInherit yalnızca bir Class ifadesi.

  • Birleşik değiştirici. Belirttiğiniz olamaz MustInherit ile birlikte NotInheritable aynı bildiriminde.

Örnek

Aşağıdaki örnekte, zorla devralma ve zorunlu kılma gösterilmektedir.Temel sınıf shape bir değişken tanımlar acrossLine.Sınıfları circle ve square öğesinden türetilmeli shape.Bunlar tanımını miras acrossLine, ancak işlev tanımlamanız gerekir area , hesaplama şekli her tür için farklı olduğu için.

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

Bildirmek shape1 ve shape2 türünde olması için shape.Ancak, bir nesneyi oluşturamıyor shape işlevi işlevselliğinin bulunmadığı için area ve işaretlenmiş MustInherit.

Olarak bildirildiði için shape, değişkenleri shape1 ve shape2 türetilen sınıflardan nesnelere izin verilmeyen circle ve square.Visual Basic Bu değişkenler için diğer bir nesne atamak, tür güvenliği yüksek düzeyde sunan izin vermez.

Kullanım

MustInherit Bu bağlamda değiştiricisi kullanılabilir:

Sınıf bildirimi

Ayrıca bkz.

Başvuru

Inherits Deyimi

NotInheritable (Visual Basic)

Kavramlar

Devralma Temelleri (Visual Basic)

Diğer Kaynaklar

Anahtar Sözcükler (Visual Basic)