LabVIEW 2020ではインタフェースが導入されました。インタフェースはプライベートデータ制御のないクラスと考えることができますが、そのわずかな違いにより、インタフェースは、ソフトウェアアーキテクチャの中でクラスとはまったく異なる目的に使用することができます。具体的には、インタフェースでは複数の継承が可能です。

インタフェースは、オブジェクトがどのように役割を実行するかは定義せずに、そのオブジェクトが満たすことができる役割を宣言します。クラスは、インタフェースから継承することにより、そのオブジェクトが特定の役割を果たすことを宣言します。また、その動作の実行方法を指定する責任を負います。複数のインタフェースを継承するクラスは、そのオブジェクトをさまざまな役割を必要とする複数のソフトウェアモジュールに渡すことができます。

以下のプロジェクトには、Tool (ツール) クラスとさまざまなツール子クラスが含まれています。また、Lever (てこ) インタフェースも含まれています。Toolsクラスにはクラス内のデータを定義する制御器がありますが、インタフェースにはプライベートデータがないため、Lever (てこ) インタフェースには制御器がありません。「クラス」は、面の枠が塗りつぶされた立方体 () として表示されます。「インタフェース」は、面の枠が白線の立方体 () として表示されます。インタフェースとクラスのファイル拡張子は、どちらも (.lvclass) です。



以下の図は、「ツール」クラス、「鍵」クラス、「てこ」インタフェースの間の継承関係を示しています。「ツール」クラスと「てこ」インタフェースは、どちらもLabVIEWオブジェクトを継承します。「こじ開けツール」クラスと「ドライバー」クラスは、それぞれ独自のメソッドと親クラスのメソッドをもつ他、「てこ」としても使用できるため、「てこ」インタフェースからも継承します。これらのクラスは、「てこ」インタフェースのメソッドを継承します。「てこ」はクラスではなくインタフェースなので、この多重継承は問題ありません。互いに関連のない (こじ開けツール、ドライバー、鍵) という3つのクラスは、LabVIEWオブジェクト以外にLever (てこ) という共通の祖先をもちます。



インタフェースは、以下の方法で作成できます。

  • プロジェクトエクスプローラウィンドウのマイ コンピュータを右クリックし、ショートカットメニューから新規 » インタフェースを選択する。
  • ファイル » 新規を選択し、新規作成リストから他のファイル » インタフェースを選択する。
  • LabVIEWクラス:インタフェースを作成メソッドを使用する。

インタフェースの新しいプロパティおよびメソッドの詳細については、「追加および変更されたプロパティ、メソッド、およびイベント」セクションを参照してください。

インタフェースを使用するサンプルについては、以下のプロジェクトを参照してください。

  • labview\examples\Object-Oriented Programming\Basic Interfaces\Basic Interfaces.lvproj
  • labview\examples\Object-Oriented Programming\Actors and Interfaces\Actors and Interfaces.lvproj