
今回はクラスの継承について紹介していきます。
クラスの継承をすると、継承元のクラスの機能を、継承先のクラスでも使用できるようになります。
つまり継承先のクラスでは、継承元にない機能のみを記載することになります。
このとき、継承元のクラスを「スーパークラス」、「親クラス」と呼んだりします。
継承先のクラスは、「サブクラス」、「子クラス」と呼びます。
継承を利用しなくてもプログラムを作ることができるのですが、
継承を利用することで、プログラムのコードの記述を少なくすることができ、
プログラムのメンテナンスをしやすくなるといったメリットがあります。
特に大規模プロジェクトなどで、きっちりクラス化や継承が出来ていると、後のメンテナンスが楽になります。
クラスの継承
クラスの継承をおこなうための書き方を紹介します。
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行目:掛け算クラスから継承元の足し算クラスのメソッドを呼び出している。
結果をみると、継承先のクラスから継承元のクラスの機能を呼び出させることが確認できましたね。
まとめ
クラスや継承を理解することで、プログラムを部品化することができます。
汎用性が高い部品(クラス)を作成して、メンテしやすいプログラムを作成できるようになりましょう。
継承元のクラスは、「スーパークラス」、「親クラス」と呼ぶ
継承先のクラスは、「サブクラス」、「子クラス」と呼ぶ