VB.NET クラスの継承の仕組みとサンプル

VB.NETのクラスの継承の仕組みとサンプルです。

目次

クラスの継承のイメージ

クラスを継承すると、継承先のクラスは継承元のクラスの機能を引き継ぎます。
継承先のクラスは、差分の機能を追加するだけでよくなります。

継承元のクラスのことを「基底クラス 」or 「親クラス 」or 「スーパークラス」といいます。
継承先のクラスのことを「派生クラス」 or「 子クラス」 or「 サブクラス」といいます。

継承

Public Class クラス名
Inherits 継承元のクラス名

コード

クラスの継承のサンプルです。

Public Class Class1

    Public Function print1()
        Return "表示1"
    End Function

End Class
Public Class Class2
    Inherits Class1

    Public Function print2()
        Return "表示2"
    End Function

End Class
Module Module1
    Sub Main()
        Dim c2 As New Class2
        Console.WriteLine(c2.print1()) '表示1と出力される
        Console.WriteLine(c2.print2()) '表示2と出力される
    End Sub

End Module

1~7行目は、親クラスです。
8~15行目は、子クラスです。
9行目は、Inheritsの後にClass1と記述することにより、Class2は、Class1を継承しています。
19行目のprint1メソッドは子クラスに存在しませんが実行できます。3行目の親クラスのメソッドを実行します。
→子クラスは、親クラスのメソッドを再実装しないで済んでいます。継承の利点です。

クラスの継承を禁止する(NotInheritable )

クラスの継承を禁止するサンプルです。NotInheritableを使用します。

Public NotInheritable Class Class1

    Public Function print1()
        Return "表示1"
    End Function

End Class
Public Class Class2
    Inherits Class1

    Public Function print2()
        Return "表示2"
    End Function

End Class
Module Module1
    Sub Main()
        Dim c2 As New Class2
        Console.WriteLine(c2.print1()) '表示1と出力される
        Console.WriteLine(c2.print2()) '表示2と出力される
    End Sub

End Module

1行目は、NotInheritableがあります。このクラスは継承できません。
9行目は、Class1を継承しようとしますがエラーになります。

継承しなければ使えない(MustInherit)

継承しなければ使えないクラスのサンプルです。MustInheritを使用します。

Public MustInherit Class Class1

    Public Function print1()
        Return "表示1"
    End Function

End Class
Public Class Class2
    Inherits Class1

    Public Function print2()
        Return "表示2"
    End Function

End Class
Module Module1
    Sub Main()
        Dim c1 As New Class1
        Dim c2 As New Class2
    End Sub

End Module

1行目は、MustInheritがあります。継承しないと使用できないクラスになります。
18行目は、newで直接Class1をインスタンス化しようとしますがエラーになります。

関連の記事

VB.NET入門 クラスの仕組みとサンプル

△上に戻る