```
public class A {
    public A() {
        System.out.println("A()");
    }

    public class B {
        public B() {
            System.out.println("B()");
        }
    }
}
class Caller extends A.B {
    Caller(A a){
        a.super();
    }
}

public class Main {
    public static void main(String[] args) {
        Caller as= new Caller(new A());
    }
}

```

Why do we need `a.super()` call in class extending inner class? What does it doing?

Without `a.super()` program does not want to compile.

```
Error:(48, 20) java: an enclosing instance that contains A.B is required

```