1. ホーム
  2. java

[解決済み] Javaでインターフェースのインスタンスを作成することはできますか?重複

2023-07-16 06:49:09

質問

Javaでインターフェースのインスタンスを作成することは可能でしょうか?

どこかで読んだのですが、内側の無名クラスを使って、以下のようにできるようです。

interface Test {
    public void wish();
}

class Main {
    public static void main(String[] args) {
        Test t = new Test() {
            public void wish() {
                System.out.println("output: hello how r u");
            }
        };
        t.wish();
    }
}

cmd> javac Main.java
cmd> java Main
output: hello how r u

ここは正しいですか?

どのように解決するのですか?

はい、あなたの例は正しいです。匿名クラスはインターフェイスを実装することができ、それは "implements" キーワードなしでインターフェイスを実装するクラスを見ることができる唯一の機会だと思います。別のコードサンプルはこちらでご確認ください。

interface ProgrammerInterview {
    public void read();
}

class Website {
    ProgrammerInterview p = new ProgrammerInterview() {
        public void read() {
            System.out.println("interface ProgrammerInterview class implementer");
        }
    };
}

これは問題なく動作します。このページからの引用です。

http://www.programmerinterview.com/index.php/java-questions/anonymous-class-interface/