本記事では、プログラミング初心者向けに向けて「インターフェースとは何か」について、分かりやすく解説いたします!
なお、本記事を執筆したのは、プログラミングスクール「アキバ・テックドリーム・アカデミー」(以下、テクドリ)の運営企業であるメディアファイブ株式会社(以下、メディアファイブ)に所属している現役のITエンジニア職の社員です。
インターフェースとは
インターフェースは、IT分野におけるインターフェースと、プログラミングにおけるインターフェースで異なる意味を持っています。
IT分野におけるインターフェース
IT分野におけるインターフェースとは、2つの異なる機器やシステム間で通信やデータ転送を行う際、それらを仲介する規格や機能のことで、「IF」、「I/F」といった略語で表現されることもあります。
インターフェースは、抽象的な意味で使用される場合もあるため、「2者間をつなぐ部分」として広い意味で捉えておくと良いでしょう。
プログラミングにおけるインターフェース
JavaやC#といったオブジェクト指向プログラミング言語において、インターフェースとは、実装を持たない形でクラスが持つメソッドを抽象的に定義するものです。
インターフェースだけでは処理を実行できないため、引数や戻り値といったメソッドの型をインターフェースで定義し、それを元に任意のクラスで実装する必要があります。
Animalを定義するものをインターフェースとし、Animalの型を元に、Dogクラス、Catクラス、Rabbitクラスを実装するといったイメージで良いでしょう。
IT分野におけるインターフェースの種類
IT分野におけるインターフェースは、主に「ハードウェアインターフェース」、「ソフトウェアインターフェース」、「ユーザーインターフェース」の3つに分類されます。
ハードウェアインターフェース
ハードウェアインターフェースとは、パソコンや周辺機器といったハードウェア同士をつなぐインターフェースのことです。
複数のハードウェア間での接続を可能にするためのコネクタの形状や電気信号の形式などを指しています。
代表例として、下記が挙げられます。
USB
コンピュータと周辺機器(マウス、キーボード、外付けHDDドライブなど)を接続するための規格です。
HDMI
コンピュータと液晶ディスプレイやテレビを接続して映像や音声を伝達するための規格です。
Bluetooth
コンピュータと周辺機器(マウス、キーボード、イヤホンなど)を接続するための無線通信の規格です。
ソフトウェアインターフェース
ソフトウェアインターフェースとは、ソフトウェア同士をつなぐインターフェースのことです。
異なるソフトウェア間でデータを伝達する際の接続手順やデータの形式などを指しています。
代表例として、下記が挙げられます。
API(Application Programming Interface)
異なるソフトウェアやアプリケーション間で機能やデータを連携する際の利用手順や規約を定義したものです。
ユーザーインターフェース
ユーザーインターフェースとは、ユーザーとコンピュータの接点となるインターフェースのことで、「UI(User Interface)」といった略語で呼ばれることが多いです。
ユーザーがコンピュータを操作する際の入力装置や画面表示、画面操作などを指しています。
代表例として、下記が挙げられます。
WUI(Web User Interface)
ソフトウェアのインターフェースとしてWebページやWebブラウザを利用するユーザーインターフェースです。
GUI(Graphical User Interface)
画面表示にアイコンや画像など視覚的に分かりやすいものを利用し、ポインティングデバイス(マウスとかタッチパッドなど)による操作を可能とするユーザーインターフェースです。
CUI(Character User Interface)
画面表示にアイコンや画像を利用せず、文字や記号で構成されたコマンドを、キーボードによって入力することで操作を可能とするユーザーインターフェースです。
まとめ

インターフェースは、IT分野におけるインターフェースと、プログラミングにおけるインターフェースで異なる意味を持っています。
IT分野におけるインターフェースとは、2者間をつなぐ部分のことで、2つの異なる機器やシステム間で通信やデータ転送を行う際にそれらを仲介する規格や機能を指します。
プログラミングにおけるインターフェースとは、JavaやC#といったオブジェクト指向プログラミング言語において、実装を持たない形でクラスが持つメソッドを抽象的に定義するものです。
IT分野におけるインターフェースは、主に、ハードウェア同士をつなぐ部分である「ハードウェアインターフェース」、ソフトウェア同士をつなぐ部分である「ソフトウェアインターフェース」、ユーザーとコンピュータの接点である「ユーザーインターフェース(UI)」の3つに分類されます。
インターフェースへの理解を深めて、利便性や拡張性を考えたシステム開発に役立てましょう。
無料のプログラミングスクール「テクドリ」の卒業生のインタビュー動画を、インスタグラムほか公式SNSにて公開中!