LoginSignup
8
7

More than 5 years have passed since last update.

【Java】interfaceについて

Last updated at Posted at 2016-12-11

Javaを学んでいて、つまずきやすいポイントの一つ(?)interfaceについて、まとめてみたいと思います。

Android でのinterfaceの例は別の記事にまとめました。

Androidアプリプログラミングで、interfaceについて理解を深めるなら、独自リスナーを作ってみるのがいい気がします。

interface について

interface の書き方。

java.langのRunnableがインターフェースの例です。

Runnable.java
package java.lang;


/**
 * Represents a command that can be executed. Often used to run code in a
 * different {@link Thread}.
 */
public interface Runnable {

    /**
     * Starts executing the active part of the class' code. This method is
     * called when a thread is started that has been created with a class which
     * implements {@code Runnable}.
     */
    public void run();
}

簡単にすると

Runnable.java
public interface Runnable {
    public void run();
}

こうなります。

スッキリわかるJava入門 第2版では、「抽象クラスの中の抽象クラス」という表現で説明されていたりします。

インターフェースと扱われる2つの条件

  1. すべてのメソッドが抽象メソッド
  2. 基本的にフィールドを一つも持たない

抽象メソッド

処理の中身 ( { /*...処理...*/ } がない) メソッドのこと。

Runnable.java
public void run();

の部分。

インターフェースのフィールドについて

インターフェースでフィールドを宣言すると、 public static final で、定数を宣言したものと扱われます。

インスタンスの生成

抽象メソッドは 必ずオーバーライドされる 必要があるので、interfaceのインスタンスを生成するときには、

Runnable runnable = new Runnable() {
    @Override
    public void run() {

    }
};

このように run() メソッドをオーバーライドしながらインスタンスを生成することになります。

参考

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7