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:
Ayrıca bkz.
Başvuru
Kavramlar
Devralma Temelleri (Visual Basic)