public class TestADT { public static void main(String[] args) { Printable m = new MyMatrix2D(new Integer[][] { { new Integer(1),new Integer(2),new Integer(3) }, { new Integer(4),new Integer(5),new Integer(6) } } ); m.print(); } } interface Printable { void print(); } abstract class Matrix2D implements Printable { protected final int size1; protected final int size2; protected Object[][] a; public Matrix2D(Object[][] a) { size1 = a.length; size2 = a[0].length; this.a = a; } abstract public void print(); } class MyMatrix2D extends Matrix2D implements Printable { public MyMatrix2D(Object[][] a) { super(a); } public void print() { for(int i=0;i