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 についてでした。