【Javaプログラミング】interface(インターフェース)とは?-プロショvol.57

スポンサーリンク
Java攻略
スポンサーリンク

はじめに

 

前回はabstractを使うことで、特定のデータを隠して直接表示させないようにする方法について見てきた。

特定のデータを隠して直接表示させないようにすることは「抽象化」と呼ばれる。

今回取り上げる「interface(インターフェース)」がプログラムを抽象化するもう一つの方法。

abstractとinterface。

 

interface(インターフェース)を使う際のルール

 

interfaceを使用する際にも、abstractの時と同様に一定のルールがある。

 

  • interfaceを使用したクラスの中のメソッドには処理内容を書けない

abstractクラスでは通常のメソッドabstractを使ったメソッドも一緒に書くことができた。

でもinterfaceではクラスの中のメソッドは全て中身は空っぽにしなければいけない。

 

  • interfaceの場合は「extends」ではなく「implements」を使ってデータを引き継ぐ

abstractクラスは「extends」を使って別のクラスに引き継がれる。

interfaceクラスの場合は「implements」。

 

  • メソッドの内容を書くときは「public」を付けること

implementsによって引き継いだクラスの中に、メソッドの処理内容を書くときはメソッドに「public」を付けないとエラーが出ちゃう。

 

  • interfaceクラスの中に「int A=45;」などのデータを書いた場合は呼び出す際にオブジェクトは不要

interfaceクラスの中に書かれた「int A=45;」などのデータは、標準が「public」で「static」なものになっている。

実際に書かれていないが内部的に「public」で「static」ということから、どこのクラスからでもアクセスできるし呼び出す際にオブジェクトを必要としない

 

 

  • interfaceにコンストラクタを使うことはできない

interfaceはオブジェクトを作れないからコンストラクタも使えない。

 

interfaceを使ったコード

 

interfaceを使って作ってみたコードが以下。

interface cooking{
void taste();
void smell();
}class Tonkatsu implements cooking{
public void taste() {
System.out.println(“美味しい”);
}

public void smell() {
System.out.println(“いい匂い”);
}
}

public class cookingMain {public static void main(String[] args) {

Tonkatsu katsu = new Tonkatsu();
katsu.taste();}

}

 

実行すると以下の結果が得られた。

美味しい

 

interfaceをもつcookingクラスの中にはメソッドが2つある。

void taste();
void smell();

どちらも「public」の表示はないが、内部的には「public」になっている。

 

Tonkatsuクラスがcookingクラスを引き継いでいる。

interfaceの中に書いたメソッドの処理内容は全て「implements」によって引き継いだクラスの中に書かれないといけない。

 

Tonkatsuクラスには2つのメソッドの処理内容がそれぞれ書かれている。

こちらのメソッドには「public」と書かないとエラーが起きた。

 

私はinterfaceクラスのメソッドには「public」を付けなかったけど、同じ形にするために「public」を付けると分かりやすいかも。

interface cooking{
public void taste();
public void smell();
}

 

interfaceのクラスのオブジェクトは作ることができないから、クラスを引き継いだTonkatsuクラスのオブジェクトを作成する。

 

作ったオブジェクトと使用したいメソッド名を指定して呼び出すと結果が得られる。

 

最後に

 

大体は前回にまとめたabstractと同じ。

ただ、abstractはextendsを使用していたのに対し、interfaceではimplementsを使用する。

コードにちょっとした違いがあるから混同しないように注意しないといけない。

 

 

このエントリーをはてなブックマークに追加

コメント

タイトルとURLをコピーしました