注目記事

【Javaコード入門】継承、インターフェイス_②interface命令

インターフェイスを定義する – interface命令

[modifier] interface name {
 definition
}
 modifier:修飾子
 name:インターフェイス名
 definition:メンバーの定義

インターフェイスとは、ある特定の機能を実現するために必要なメソッドのシグニチャ(名前や引数、戻り値の型)だけを定義したものです。処理そのものは持ちません。抽象クラスとも似ていますが、実装を持てない点(※)、クラスが多重継承を禁止されているのに対して、インターフェイスは多重継承が可能である点が異なります。interface命令で定義できます。
たとえば以下は、getAreaメソッドを持つAreableインターフェイスを定義する例です。

※Java 7以前の場合です。Java 8の場合は後述します。

Areable.java

  1. package com.example.mynavi.object;
  2.  
  3. public interface Areable {
  4.   double getArea();
  5. }

インターフェイスのメンバーは暗黙的にpublic(すべて公開)と見なされますので、慣例的に「public」は省略して表します。

 

インターフェイス自身は、クラスと同じく、継承することもできます。その際は、implementsキーワードではなく、extendsキーワードを利用する点に注意してください。

 

  1. public interface Areable extends Serializable { ... }

関連ページ

継承、インターフェイス_目次
extendsキーワード
interface命令
implementsキーワード
無名クラスを定義する
ラムダ式を利用する

監修

山田祥寛(有限会社 WINGSプロジェクト)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NEC にてシステム企画業務に携わるが、2003年 4 月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト(https://wings.msn.to/)」の代表でもある。主な著書に『改訂 3 版JavaScript 本格入門』(技術評論社)、「独習シリーズ(C#・Python・PHP・Ruby・JSP&サーブレットなど)」(翔泳社)、「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravel など)」(Amazon Kindle)など。売り上げの累計は100万部を超える。