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()); } } }