/**5-3

 * 在Printable接口中增加一个新的PrintItMyWay(char)方法,

 * 这个方法有一个字符型的形参,返回值为空.

 * 其功能是利用给出的字符打印,例如如果给定字符为*,一个长为4

 * 宽为3的矩形的屏幕打印结果为:

 * ****

 * ****

 * ****

 **/

public class FirstProgram{	public static void main (String[] args)	{		Rectangle rectangle = new Rectangle(5, 3);		Square square = new Square(4);		rectangle.printItMyWay('*');		square.printItMyWay('*');	}}interface Printable{	void printItMyWay();	void printItMyWay(char n);} class Rectangle implements Printable{	protected int length;	protected int width;	Rectangle ()	{			}	Rectangle(int l, int w)	{		this.length = l;		this.width = w;	}	void show()	{		System.out.println(" length: " + length + " width: " + width);	}	void print(char n)	{		int i, j;		for (i = 0; i < width; i++)		{			for (j = 0; j < length; j++)				System.out.print(" " + n + " ");			System.out.println();		}		System.out.println();	}	int perimeter ()	{		return (length + width) * 2;	}	int area ()	{		return length * width;	}	    public void printItMyWay()	{		this.show();		System.out.println(" permiter: " + this.perimeter() + " area: " + this.area());	}    public void printItMyWay(char n)    {    	this.print(n);    }} class Square  extends Rectangle{	protected int side;	Square (int side)	{		super();				this.side = side;	}	void show()	{		System.out.println(" side: " + side);	}	void print(char n)	{		int i, j;		for (i = 0; i < side; i++)		{			for (j = 0; j < side; j++)				System.out.print(" " + n + " ");			System.out.println();		}	}	int perimeter ()	{		return 4 * side;	}	int area ()	{		return side * side;	}}