インターフェース(復習)

  • クラスと同様で、型を定義できる。
  • クラスと違って、単体では使えない(インスタンスを作ることができない)。クラスに実装(implements)する。
  • インターフェースで記述できるメソッドは抽象メソッド(本体がない)。したがってクラスでそのメソッドをオーバーライドして実装しなければ(本体を書かなければ)ならない。

例えると:

  • クラス: 設計図(どのような機能があるのか、その機能をどのような処理で実現するのかが書いてある)。
  • インスタンス: 製品・生産物・実体(設計図に基づいて作られるもの)。
  • インターフェース: 規格(設計の時点で持つべき機能が定義されている。どのように実現するのかは書いていない)。

設計図が違っても、同じ規格に準拠していれば、それらの設計図から作られた実体は同じように扱うことができる(その規格の範囲内では)。

例えばスマホ内蔵のバッテリーは特に標準規格がないので、あるスマホバッテリーを他のスマホで使うことはできない。
乾電池は形・サイズ・電圧の規格(単一、単二等)が合っていれば(インターフェースが合っていれば)、メーカや電池系(マンガン、アルカリ等)が違っても(処理の実装が違っても)入れ替えて使うことができる(注: 厳密には、電池系についても規格があるのでマンガンとアルカリで入れ替えてはダメな場合等もある)。