最近になりましてjavaの勉強を始めました。 下記のように抽象クラスでもインスタンスを作成できることを 知ったのですが、ここでわからないことがあります。

abstract class mylog{
    public void logout(int i){
        String messageText = "log-" + String.valueOf(i);
        Log.v("my-app",messageText);
    }
}

public class hoge{
    mylog mylogclass = new mylog(){};
}
  1. 調べてみましたところこれは抽象クラスのmylogのインスタンスを 作成しているのではなく、自動でこれを継承したクラスが作成される との記述をどこかの掲示板で見たのですが、この認識で良いのでしょうか?

  2. 抽象クラスのインスタンスを作成できるということに違和感を覚えます。 このようなことが出来ることによって、どのようなメリットがあるので しょうか。

どなたかお分かりになる方、教えていただけますようお願いします。