interface B {
  int getInfoB();
}

class BB implements B{
  private int infob;
  public BB(int n) {
    infob=n;
  }
  public int getInfoB() {
    return infob;
  }
}

class D implements B {
  private BB b;  //nota!
  private String infod;
  public D(int n, String s) {
    b = new BB(n);
    infod=s;
  }
  public int getInfoB() {
    return b.getInfoB(); //nota!
  }
  public String getInfoD() {
    return infod;
  }
}

public class EreditarietaSimulata {
  private static void stampa(B x) {
    System.out.println(x.getInfoB());
  }

  public static void main(String[] args) {
    BB b = new BB(10);
    D d = new D(100,"Pippo");
    stampa(b);
    stampa(d);
    System.out.println(d.getInfoB() + " " + d.getInfoD());
  }
}
