/* * Some cases where inheritance is supposed to work and some where it doesn't. * This source corresponds with the `inherit.bsh' test script. */ import InheritanceTest.*; public class Inherit { public static void main(String[] args) { A wa; B wb; A xa; B xb; X x; A ya; B yb; C yc; Y y; A za; B zb; C zc; wa = Accessor.getWbyA(); wb = Accessor.getWbyB(); xa = Accessor.getXbyA(); xb = Accessor.getXbyB(); x = Accessor.getX(); ya = Accessor.getYbyA(); yb = Accessor.getYbyB(); yc = Accessor.getYbyC(); y = Accessor.getY(); za = Accessor.getZbyA(); zb = Accessor.getZbyB(); zc = Accessor.getZbyC(); wa.a(); wb.a(); wb.b(); // Can't access W (package scope), doesn't work with Reflection either. //((W)wa).w(); xa.a(); xb.a(); xb.b(); x.a(); x.b(); x.x(); ya.a(); yb.a(); yb.b(); yc.a(); yc.c(); y.a(); y.b(); y.c(); y.w(); // Won't work with reflection, but works here. y.x(); y.y(); za.a(); zb.a(); zb.b(); zc.a(); zc.c(); // We can do this with reflection. Won't compile in Java, though. //((Z)za).x(); System.out.println("OK"); } }