
Javaのインターフェースの使い方とは?多重実現や継承についても紹介
- SE
- Javaのインターフェースはどのように使用するのでしょうか。
- PM
- 処理ロジックは書かずに、後からメソッドを実装して使用するために使います。
目次
Javaのインターフェースの使い方とは?
今回は、Javaのインターフェースの使い方について説明します。インターフェースは、処理ロジックは書かずに、後からメソッドを実装して使用するために使います。
ここでは、インターフェースの
・作成
・使い方
・多重実現
・defaultメソッド
・継承
について紹介します。
Javaのインターフェースの使い方に興味のある方はぜひご覧ください。
作成
Javaのインターフェースの作成方法を紹介します。以下のようにメソッドの定義を記述します。
1 2 3 4 5 |
interface MyInterface { void myMethod1(); void myMethod2(); } |
このインターフェースを実装すれば使用できるようになります。
基本的な使い方
Javaのインターフェースの基本的な使い方を紹介します。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
// インターフェース interface MyInterface { void myMethod1(); void myMethod2(); } // インターフェースを実装したクラス class MyClass implements MyInterface { public void myMethod1() { System.out.println(""implementation of myMethod1""); } public void myMethod2() { System.out.println(""implementation of myMethod2""); } } // インターフェースを実装したクラスを実行 public class Main { public static void main(String[] args) { MyClass myClass = new MyClass(); myClass.myMethod1(); myClass.myMethod2(); } } |
実行結果は以下のようになります。
1 2 |
implementation of myMethod1 implementation of myMethod2 |
インターフェースを実装したクラスを作成し、それを実行すればよいのです。メソッドの中身は、インターフェースを実装したクラス作成時に実装します。
多重実現
Javaのインターフェースは多重実現できます。インターフェースを複数実装できるということです。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
// インターフェース1 interface MyInterface1 { // インターフェースには変数も定義できる int num1 = 11; String str1 = ""implementation of myMethod1""; void myMethod1(); } // インターフェース2 interface MyInterface2 { int num2 = 22; String str2 = ""implementation of myMethod2""; void myMethod2(); } // 複数のインターフェースを実装したクラス class MyClass implements MyInterface1, MyInterface2 { public void myMethod1() { System.out.println(num1 + num2); System.out.println(str1); } public void myMethod2() { System.out.println(num1 - num2); System.out.println(str2); } } // インターフェースを実装したクラスを実行 public class Main { public static void main(String[] args) { MyClass myClass = new MyClass(); myClass.myMethod1(); myClass.myMethod2(); } } |
実行結果は以下のようになります。
1 2 3 4 |
33 implementation of myMethod1 -11 implementation of myMethod2 |
implements MyInterface1, MyInterface2のように、複数のインターフェースを実装できます。
defaultメソッド
Javaのインターフェースにおける、defaultメソッドについて紹介します。インターフェースは基本的にはメソッドの定義を記述しますが、defaultメソッドはインターフェース内にロジックを実装できます。
インターフェースを実装したクラスでは、必要に応じてオーバーライドします。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
// インターフェース interface MyInterface { String str1 = ""default implementation of myMethod""; default public void myMethod() { System.out.println(str1); } } // インターフェースを実装したクラス class MyClass1 implements MyInterface { // defaultメソッドが使用される } // インターフェースを実装したクラス class MyClass2 implements MyInterface { @Override public void myMethod() { System.out.println(""implementation of myMethod""); } } // インターフェースを実装したクラスを実行 public class Main { public static void main(String[] args) { MyClass1 myClass1 = new MyClass1(); myClass1.myMethod(); MyClass2 myClass2 = new MyClass2(); myClass2.myMethod(); } } |
実行結果は以下のようになります。
1 2 |
default implementation of myMethod implementation of myMethod |
MyClass1ではdefaultメソッドがそのまま使われていることが分かります。
継承
Javaのインターフェースは継承することもできます。実際のソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
// インターフェース1 interface MyInterface1 { int num1 = 11; String str1 = ""implementation of myMethod1""; void myMethod1(); } // 継承したインターフェース interface MyInterface2 extends MyInterface1 { int num2 = 22; String str2 = ""implementation of myMethod2""; void myMethod2(); } // インターフェースを実装したクラス class MyClass implements MyInterface2 { public void myMethod1() { System.out.println(num1 + num2); System.out.println(str1); } public void myMethod2() { System.out.println(num1 - num2); System.out.println(str2); } } // インターフェースを実装したクラスを実行 public class Main { public static void main(String[] args) { MyClass myClass = new MyClass(); myClass.myMethod1(); myClass.myMethod2(); } } |
実行結果は以下のようになります。
1 2 3 4 |
33 implementation of myMethod1 -11 implementation of myMethod2 |
- SE
- Javaのインターフェースをよく理解できました。
- PM
- Javaのインターフェースの作り方や使い方などが理解できたら、実際にソースコードで指定してみましょう。
まとめ
いかがでしたでしょうか。Javaのインターフェースは、処理ロジックは書かずに、後からメソッドを実装して使用するために使います。Javaのインターフェースの作り方、使い方、多重実現、defaultメソッド、継承について説明しました。
ぜひご自身でJavaのソースコードを書いて、理解を深めてください。