インターフェースの変数と引数

インターフェースの変数

インターフェースの変数を定義することができます。定義した変数にはインターフェースを実装したクラスのインスタンスを格納することになります。そして、この変数を利用して宣言したメソッド、定義した変数を利用することができます。

インターフェースの引数

インターフェースは引数にすることもできます。下記にプログラム例を掲載します。

6行目で関数subを呼び出していますが、引数squはクラスCalSquaのインスタンスです。そして、インターフェースMensekiを実装しています。


呼び出されるメソッドsubでは、squのインスタンスを「Menseki m」で受け取ってます。つまりインターフェース変数で受け取っています。

これでインターフェース変数mを利用して、インターフェースで宣言したメソッドが実行できます。



実務で見られる使い方

次のように、より複雑なソースコードを見かけます。このプログラムはクラスのメソッド処理を「正方形の面積計算」、「三角形の面積計算」に切り替えることができます。

30行目~44行目でクラスCalEtcが定義されていますが、その中でインターフェースを保持する変数mがあります。

インターフェースを格納するのは、メソッドchangeを通じて外部から行われます。格納されるインターフェースの内容により、「正方形の面積計算」、「三角形の面積計算」が切り替わります。

面積計算の処理はCalMensekiを通じで、インターフェース変数mを利用して行われます。

「正方形の面積計算」、「三角形の面積計算」の切り替えは10行目、12行目で行っています。

インターフェースを利用することにより状況に応じてメソッドの処理を入れ替えることができます。どのように利用するか?、と考えると頭を悩ますことになりますが、このようなテクニックを利用したプログラムが多く存在します。まずはこのようなプログラムが存在していることを把握して、オブジェクト指向を是非とも「やり過ごして」ください。

タイトルとURLをコピーしました