VB.NET オーバーライド 使い方 Overrides

今回はオーバーライドについて紹介していきます。

オーバーライドとは、クラスを継承する時に使用するもので、
継承元クラス(親クラス、スーパークラス)のメソッドを上書きすることです。

といってもわかりにくいと思うので早速、使い方を見ていきましょう。

オーバーライドの使い方

オーバーライドを使用するには、継承元クラスにOverrideable、継承先クラスにOverridesを記載しましょう。

Public Class 継承元クラス名
    Public Overridable Sub メソッド名 
    End Sub
End Class
Public Class 継承先クラス名
    Inherits 親クラス
    
    Public Overrides Sub メソッド名 
    End Sub
End Class

このような記載をすることで親クラスのメソッドを改造して使うことができます。

実際の例を見ていきましょう。

まず、継承元クラスとして、足し算をするクラスを作成しましょう。
そして、継承先クラスとして、足し算の結果に +1 をする機能を作成しました。

''' <summary>
''' 継承元クラス(親クラス、スーパークラス)
''' </summary>
Public Class ClsTashizan
    Public Property a As Integer
    Public Property b As Integer

    Public Overridable Function sum() As Integer

        Dim result As Integer
        result = a + b

        Return result

    End Function

End Class

''' <summary>
''' 継承先クラス(子クラス、サブクラス)
''' </summary>
Public Class ClsTashizan2
    Inherits ClsTashizan

    Public Overrides Function sum() As Integer

        Dim result As Integer = MyBase.sum() + 1

        Return result

    End Function

End Class

''' <summary>
''' フォーム
''' </summary>
Public Class frmOverride
    Private Sub frmOverride_Load(sender As Object, e As EventArgs) Handles MyBase.Load

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

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

        'クラス宣言
        Dim clstashi2 As New ClsTashizan2

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

        'メソッド呼び出し
        result_tashi = clstashi2.sum()

        '結果出力
        Console.WriteLine(result_tashi)

    End Sub
End Class

結果
16

解説
1行目~17行目:親クラスを作成
8行目:sum()というメソッドを継承先クラスで上書きできるように、Overridableを記載している。

19行目~33行目:子クラスを作成
25行目:sum()メソッドを上書きするために、Overridesを記載する。
27行目:MyBaseは継承元のクラスのことなので、MyBase.sum()で継承元クラスのsum()の結果を取得できる。その結果に +1 を行っている。

35行目~62行目:作成したクラスを呼び出す処理

10と5を足した値に +1 をした16が出力されました。
オーバライドによる継承元の関数の上書きができていることを確認できましたね。

まとめ

オーバライドとは、クラスを継承する時に、継承元クラスの関数を上書きすることです。

同じような名前で、オーバーロードとういうものがありますが、全くの別物ですので、注意してください。

 

VB.NETの記事一覧

おすすめの記事