Lessons in this course (12)

7. Inheritance, interfaces and polymorphism keywords

Intermediate★ Must knowLesson 7 of 12
vb
Public MustInherit Class Shape                      ' MustInherit = C# abstract class
    Public MustOverride Function Area() As Double   ' MustOverride = abstract method
    Public Overridable Function Describe() As String ' Overridable = virtual
        Return $"{Me.GetType().Name} with area {Area():0.00}"
    End Function
End Class

Public Class Circle
    Inherits Shape                                   ' : Shape
    Public Property Radius As Double
    Public Overrides Function Area() As Double       ' override
        Return Math.PI * Radius ^ 2
    End Function
End Class

Public NotInheritable Class Square                  ' NotInheritable = C# sealed
    Inherits Shape
    Implements IComparable(Of Square)                ' implement an interface
    Public Property Side As Double
    Public Overrides Function Area() As Double
        Return Side * Side
    End Function
    Public Function CompareTo(other As Square) As Integer Implements IComparable(Of Square).CompareTo
        Return Side.CompareTo(other.Side)            ' explicit "Implements" clause on every member
    End Function
End Class

Public Interface IRepository(Of T)
    Function GetById(id As Integer) As T
    Sub Save(item As T)
End Interface
C#VB.NET
abstract class / abstract memberMustInherit / MustOverride
virtual / overrideOverridable / Overrides
sealed class / sealed overrideNotInheritable / NotOverridable Overrides
new (hide member)Shadows
class A : B, IXInherits B + Implements IX
interface member implementation (implicit)Implements IX.Member clause required