Abstract Class
Abstract class is a special kind of class that cannot be instantiated. It only allows other classes to inherit from it but cannot be instantiated. These are the important point which are related to the abstract class.
- abstract class may contain concrete methods.
- class may contain non-public members.
- abstract class can be used as a single inheritance.
- abstract class can be invoked if a main() exists.
why we need a abstract class that cannot be instantiated
It only allows other classes to inherit from it but cannot be instantiated. The advantage is that it enforces certain hierarchies for all the subclasses. In other word, it is a kind of contract that forces all the subclasses to carry on the same hierarchies or standards.
Creating a abstract class
we use MustInherit keyword to create abstract class. Abstract classes can also specify abstract members. Like abstract classes, abstract members also provide no details regarding their implementation. Only the member type, access level, required parameters and return type are specified. and to declare the abstract member we use the MustOverride keyword.
For example
Imports System.Console
Imports System.Math
Module Module1
Public MustInherit Class Abstractclass
Public MustOverride Function square() As Integer
Public MustOverride Function cube() As Integer
End Class
Public Class AbstractFirst
Inherits AbstractClass
Dim A As Integer = 4
Dim B As Integer = 5
Public Overrides Function square() As Integer
Return A * A
End Function
Public Overrides Function cube() As Integer
Return B * B * B
End Function
End Class
Sub Main()
Dim abs1 As New AbstractFirst()
WriteLine("square of A is :" & " " & abs1.square())
WriteLine("Cube of B is :" & " " & abs1.cube())
Read()
End Sub
End Module