TECH I.S.

Java インターフェース


インターフェース

Javaで抽象化を実現するもうひとつの方法は、インターフェースを使うことです。

インターフェースとは、完全に"抽象的なクラス"であり、関連するメソッドを空のボディでグループ化するために使われる。

// interface interface Animal { public void animalSound(); // interface method (does not have a body) public void run(); // interface method (does not have a body) }

インターフェースメソッドにアクセスするには、インターフェースが別のクラスによって「実装」(継承のようなもの) されている必要があります。implements(代わりにextends)インターフェースメソッドの本体は、「implement」クラスによって提供されます。

// Interface interface Animal { public void animalSound(); // interface method (does not have a body) public void sleep(); // interface method (does not have a body) } // Pig "implements" the Animal interface class Pig implements Animal { public void animalSound() { // The body of animalSound() is provided here System.out.println("The pig says: wee wee"); } public void sleep() { // The body of sleep() is provided here System.out.println("Zzz"); } } class Main { public static void main(String[] args) { Pig myPig = new Pig(); // Create a Pig object myPig.animalSound(); myPig.sleep(); } }

自分で試してみる »

インターフェースに関する注意事項:

抽象クラスと同様、インターフェースはオブジェクトを作成するために使用することはできません
(上記の例では、MyMainClassの中に "Animal "オブジェクトを作成することはできません)
・インターフェースメソッドには本体がありません。本体は「実装」クラスによって提供されます。
・インターフェースの実装では、そのすべてのメソッドをオーバーライドする必要があります。
・インターフェースメソッドはデフォルトではabstractpublicです。
・インターフェース属性はデフォルトではpublicstaticfinalです。
・インターフェースにコンストラクターを含めることはできません (オブジェクトの作成には使用できないため)。

インターフェースを使用する理由とタイミング

1) セキュリティを実現するには、特定の詳細を非表示にして、オブジェクト (インターフェース) の重要な詳細のみを表示します

2) Java は「多重継承」をサポートしていません (クラスは 1 つのスーパークラスからしか継承できません)。ただし、クラスはできるため、
インターフェースを使用して実現できます。埋め込む複数のインターフェース。ノート:複数のインターフェースを実装するには、
それらをコンマで区切ります (以下の例を参照)。



複数のインターフェース

複数のインターフェースを実装するには、それらをコンマで区切ります。

interface FirstInterface { public void myMethod(); // interface method } interface SecondInterface { public void myOtherMethod(); // interface method } class DemoClass implements FirstInterface, SecondInterface { public void myMethod() { System.out.println("Some text.."); } public void myOtherMethod() { System.out.println("Some other text..."); } } class Main { public static void main(String[] args) { DemoClass myObj = new DemoClass(); myObj.myMethod(); myObj.myOtherMethod(); } }

自分で試してみる »



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細