Roadmap › VB.NET — Visual Basic .NET from Basics to Advanced (with C# Comparison) › Module: Object-Oriented VB.NET
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 member | MustInherit / MustOverride |
virtual / override | Overridable / Overrides |
sealed class / sealed override | NotInheritable / NotOverridable Overrides |
new (hide member) | Shadows |
class A : B, IX | Inherits B + Implements IX |
| interface member implementation (implicit) | Implements IX.Member clause required |