Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir sınıfın yalnızca temel sınıf olarak kullanılabileceğini ve doğrudan ondan nesne oluşturamayacağınızı belirtir.
Açıklamalar
Temel sınıfın (soyut sınıf olarak da bilinir) amacı, ondan türetilen tüm sınıflar için ortak olan işlevleri 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 tamamlanmaz ve türetilmiş 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ını istersiniz. Bunu zorunlu kılmak için temel sınıfta kullanırsınız MustInherit .
Bir sınıfın başka bir MustInherit kullanımı, bir değişkeni bir dizi ilgili sınıfla kısıtlamaktır. Bir temel sınıf tanımlayabilir ve tüm bu ilgili sınıfları ondan türetebilirsiniz. Temel sınıfın türetilmiş tüm sınıflar için ortak herhangi bir işlev sağlaması gerekmez, ancak değişkenlere değer atamak için bir filtre işlevi görebilir. Tüketen kodunuz bir değişkeni temel sınıf olarak bildirirse, Visual Basic türetilmiş sınıflardan yalnızca birinden bu değişkene bir nesne atamanıza olanak tanır.
.NET Framework, aralarında Array, Enumve ValueTypegibi çeşitli MustInherit sınıfları tanımlar.
ValueType , bir değişkeni kısıtlayan bir temel sınıf örneğidir. Tüm değer türleri türünden ValueTypetüretilir. Bir değişkeni olarak ValueTypebildirirseniz, bu değişkene yalnızca değer türleri atayabilirsiniz.
Kurallar
Bildirim Bağlamı. Yalnızca deyiminde
ClasskullanabilirsinizMustInherit.Birleşik Değiştiriciler. Aynı bildirimde ile
MustInheritbirlikte belirtemezsinizNotInheritable.
Örnek
Aşağıdaki örnekte hem zorlamalı devralma hem de zorlamalı geçersiz kılma gösterilmektedir. Temel sınıf shape bir değişken acrossLinetanımlar. sınıfları circle ve square türetilir shape. bu hesaplama her şekil türü için farklı olduğundan, tanımını acrossLinedevralırlar, ancak işlevi area 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 shape2 türünü shapebildirebilirsinizshape1. Ancak, işlevinin shapearea işlevselliğinden yoksun olduğundan ve olarak işaretlendiğinden MustInheritnesnesi oluşturamazsınız.
olarak shapebildirildiğinden, değişkenleri shape1 ve shape2 türetilmiş sınıflardan circle ve squarenesnelerle sınırlıdır. Visual Basic, bu değişkenlere başka bir nesne atamanıza izin vermez ve bu da size yüksek tür güvenliği sağlar.
Kullanım
Değiştirici MustInherit bu bağlamda kullanılabilir: