Ответ 1
Тонкость здесь находится в "{}". Это означает, что явно предоставляет анонимную реализацию для отсутствующих частей (недостающие части - абстрактные методы) абстрактного класса A
, позволяющие создать его экземпляр.
Но в A
нет абстрактного метода, поэтому анонимная реализация пуста.
Пример, показывающий поведение по крайней мере с одним абстрактным методом:
public abstract class A {
public abstract void bar();
public void disp() { System.out.print("Abstract"); }
}
public class B {
public static void main(String args[]) {
A object = new A() {
@Override public void bar() { System.out.print("bar"); }
};
object.disp(); //prints "Abstract"
object.bar(); //prints "bar"
}
}