私はJavaを初めて使用します。との関係を理解するのに問題がanonymous class instance
ありinterface
ます。このWebサイトの例を参照してください。
// anonymous instance as a variable
Runnable r = new Runnable()
{
@Override
public void run()
{
//codes
}
};
Thread t1 = new Thread(r, "anonymous 1");
// anonymous instance as a parameter
Thread t2 = new Thread (new Runnable()
{
@Override
public void run()
{
//codes
}
}, "anonymous 2");
このSOの質問(http://stackoverflow.com/questions/11069056/why-java-interface-can-be-instantiated-in-these-codes)の回答に基づいて、匿名クラスの基本的な理解があります。
しかし、私はこれが何であるかを理解していません:
Runnable r = new Runnable(){...};
右側では、匿名クラスのインスタンスを作成したので、それはobject of a class
です。左側では、Interface
変数です。
匿名クラスのインスタンスをインターフェイス変数に割り当てることができるのはなぜですか?
このウェブサイトを参照してください:
Thread(Runnable target, String name)
Threadは、最初の引数がインターフェイス変数であることを期待しているようです。