VB.NET 継承 Inherits

今回はクラスの継承について紹介していきます。

クラスの継承をすると、継承元のクラスの機能を、継承先のクラスでも使用できるようになります。
つまり継承先のクラスでは、継承元にない機能のみを記載することになります。

このとき、継承元のクラスを「スーパークラス」、「親クラス」と呼んだりします。
継承先のクラスは、「サブクラス」、「子クラス」と呼びます。

継承を利用しなくてもプログラムを作ることができるのですが、
継承を利用することで、プログラムのコードの記述を少なくすることができ、
プログラムのメンテナンスをしやすくなるといったメリットがあります。
特に大規模プロジェクトなどで、きっちりクラス化や継承が出来ていると、後のメンテナンスが楽になります。

クラスの継承

クラスの継承をおこなうための書き方を紹介します。

Public Class 継承先クラス名
    Inherits 継承元クラス名
    
End Class

 

それでは例を見ていきましょう。

今回は、足し算を行うクラスと掛け算を行うクラス作成しました。
この時、掛け算クラスは、足し算クラスを継承させてみましょう。

''' <summary>
''' 足し算クラス
''' </summary>
Public Class ClsTashizan
    Public Property a As Integer
    Public Property b As Integer

    Public Function sum() As Integer

        Dim result As Integer
        result = a + b

        Return result

    End Function

End Class

''' <summary>
''' 掛け算クラス
''' </summary>
Public Class ClsKakezan
    Inherits ClsTashizan

    Public Function multiplication() As Integer

        Dim result As Integer
        result = a * b

        Return result

    End Function

End Class

''' <summary>
''' (作成したクラスを呼び出す)フォーム
''' </summary>
Public Class frmInherits

    Private Sub frmInherits_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        '結果を格納する変数
        Dim result_tashi As Integer
        Dim result_kake As Integer

        '変数初期化
        Dim x As Integer = 10
        Dim y As Integer = 5

        'クラス宣言
        Dim clskake As New ClsKakezan

        '値設定
        clskake.a = x
        clskake.b = y

        'メソッド呼び出し:継承元(ClsTashizan)のメソッドを継承先(ClsKakezan)のクラスから呼び出している。
        result_tashi = clskake.sum()

        'メソッド呼び出し
        result_kake = clskake.multiplication()

        '結果出力
        Console.WriteLine(result_tashi)
        Console.WriteLine(result_kake)

    End Sub
End Class
結果
15
50

 

解説
1行目~17行目:足し算クラスを作成
19行目~34行目:掛け算クラスを作成
23行目:Inherits ClsTashizanで継承元を指定しています。

55~56行目:継承元のプロパティも利用することができる。
59行目:掛け算クラスから継承元の足し算クラスのメソッドを呼び出している。

 

結果をみると、継承先のクラスから継承元のクラスの機能を呼び出させることが確認できましたね。

 

まとめ

クラスや継承を理解することで、プログラムを部品化することができます。
汎用性が高い部品(クラス)を作成して、メンテしやすいプログラムを作成できるようになりましょう。

継承元のクラスは、「スーパークラス」、「親クラス」と呼ぶ
継承先のクラスは、「サブクラス」、「子クラス」と呼ぶ

 

VB.NETの記事一覧

おすすめの記事