class X {
    String name() { return "X"; }
}

class Y extends X {
  String name() { return "Y"; }
}

class Z extends Y {
  String name() { return "Z"; }
}

public class OverrideTest {

  public static void main(String[] args) {
    
    X[] names = new X[]{new X(), new Y(), new Z()};

    for(X x: names) {
      System.out.println( x.name());      
    }
  }
}

