Java の interface についてご紹介します。interface は継承関係のないクラスに、機能を提供する仕組みです。
interface は abstract と比較されがちです。abstract についての詳細は次の記事にあります。
interface
サンプルとなるコードを見ながらだと理解が早いと思いますので、サンプルとなるコードと合わせて説明していきます。
interface InterfaceTest{ // 定数、定義のみ int a = 1; void test(); }
これがインターフェースです。インターフェースは定数と定義だけで実装がありません。実装が無いのでインスタンス化することも出来ません。
class InterfaceTestImplement implements InterfaceTest { // 必ず実装が必要 public void test(){ System.out.println("test"); }; //実装しなくてもしても良い public void test2(){ System.out.println("test2"); }; }
インターフェースの実装です。インターフェースはカンマで繋いでいくつでも実装できます。implementsを使用してインターフェースを指定します。インターフェースで定義したメソッドを必ず実装しなくてはなりません。実装しないとエラーになります。
最低限インターフェースに定義されたメソッドを実装すればよく、インターフェースに定義されていないメソッドも実装することが出来ます。
import java.util.*; public class Main { public static void main(String[] args) throws Exception { InterfaceTestImplement interfaceTestImplement = new InterfaceTestImplement(); interfaceTestImplement.test(); interfaceTestImplement.test2(); } }
インターフェースの実装をインスタンス化して使用します。インターフェース自体はインスタンス化することは出来ません。
interfaceの継承
interfaceは継承させることができます。
interface A{ int a; void test1(); } interface B extends A{ int b; void test2(); }
カンマで繋いで何個でもインターフェースを継承させることが出来ます。
以上、Java interface についてでした。