
class A {
  B b;
  C c;
  A(B b, C c){ this.b = b; this.c = c;}
  void t() {
    b.t(); c.t();
  }
}

class B {
  D d;
  E e;
  B(D d, E e) {this.d = d; this.e = e;}
  void t() {
    d.t(); e.t();
  }
}

class C {
  void t() {}
}

class D extends C {
  void t() {
    System.out.println(" in D-object ");
  }
}

class E extends C {
  void t() {
    System.out.println(" in E-object ");
  }
}

class Main {
  static public void main(String args[]) {
    A a_in = new A(new B(new D(), new E()), new D());
    a_in.t();
  }
}  

