클래스를 기본 클래스로만 사용할 수 있고 개체를 직접 만들 수 없게 지정합니다.
비고
기본 클래스(추상 클래스라고도 함)의 목적은 파생된 모든 클래스에 공통적인 기능을 정의하는 것입니다. 이렇게 하면 파생 클래스가 공통 요소를 다시 정의할 필요가 없습니다. 경우에 따라 이 일반적인 기능은 사용 가능한 개체를 만들기에 충분하지 않으며 각 파생 클래스는 누락된 기능을 정의합니다. 이러한 경우 사용하는 코드가 파생 클래스에서만 개체를 만들도록 합니다. 기본 클래스에서 이를 적용하는 데 사용합니다 MustInherit .
클래스의 MustInherit 또 다른 사용은 변수를 관련 클래스 집합으로 제한하는 것입니다. 기본 클래스를 정의하고 이러한 모든 관련 클래스를 파생시킬 수 있습니다. 기본 클래스는 모든 파생 클래스에 공통적인 기능을 제공할 필요는 없지만 변수에 값을 할당하기 위한 필터 역할을 할 수 있습니다. 사용하는 코드에서 변수를 기본 클래스로 선언하는 경우 Visual Basic을 사용하면 파생 클래스 중 하나의 개체만 해당 변수에 할당할 수 있습니다.
.NET Framework는 여러 MustInherit 클래스를 정의합니다.ArrayEnumValueType
ValueType 는 변수를 제한하는 기본 클래스의 예입니다. 모든 값 형식은 .에서 ValueType파생됩니다. 변수를 선언하는 경우 해당 변수 ValueType에 값 형식만 할당할 수 있습니다.
규칙
선언 컨텍스트입니다. 문에서
Class만 사용할MustInherit수 있습니다.결합된 한정자입니다. 동일한 선언에서
NotInheritable함께 지정할MustInherit수 없습니다.
예시
다음 예제에서는 강제 상속 및 강제 재정의를 보여 줍니다. 기본 클래스 shape 는 변수 acrossLine를 정의합니다. 클래스 및 circlesquare 파생 shape합니다. 해당 계산은 각 종류의 셰이프에 대해 다르기 때문에 함수의 정의를 acrossLine상속하지만 함수 area 를 정의해야 합니다.
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
선언 shape1 할 수 있으며 shape2 형식 shape이 될 수 있습니다. 그러나 함수 area 의 기능이 부족하고 표시MustInherit되어 있으므로 개체 shape 를 만들 수 없습니다.
변수는 변수로 shape선언되므로 파생 클래스 및 shape2 개체로 제한됩니다 circlesquare.shape1 Visual Basic에서는 이러한 변수에 다른 개체를 할당할 수 없으므로 높은 수준의 형식 안전성이 있습니다.
사용법
한정자는 다음 MustInherit 컨텍스트에서 사용할 수 있습니다.
참고하십시오
.NET