关于JAVA多态性

package package1;
/*2010-9-29*/
abstract public class CSharp {
	//public void show();
	public String color;
	CSharp( String c ){
		
		color = c;
	}
	
	abstract public void show_area();
	abstract public void show();
}
package package1;
/*2010-9-29*/
public class CCircle extends CSharp {
	
	private float radius;
	private float PI = 3.1415926f;
	public CCircle(String c,float r){   // 构造函数设置成public 时,在其它包才可以访问
		//color = c;
		super(c);    //显式调用父类的构造函数
		radius = r;      //设置半径
	}
	
	public void show_area(){
		System.out.println(" circle area = "+ PI*radius*radius);
	}
	
	public void show(){
		
		System.out.print("the circle'color is " + color );
		show_area();
		
	}

}
package package1;

public class CRectangle extends CSharp {
	
	private int height,width;
	public CRectangle(String c,int h,int w){
		super(c);
		height = h;
		width = w;
	}

	@Override
	public void show_area() {
		// TODO Auto-generated method stub
		System.out.println(" the rectangle area = "+ height*width);

	}

	@Override
	
	public void show() {
		// TODO Auto-generated method stub
		System.out.print("the rectangle'color is " + color );
		show_area();

	}

}

/*2010-9-29*/
import package1.*;
public class app12_5 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		CCircle cir = new CCircle("red",5.12f);
		cir.show_area();
		cir.show();
		
		//CSharp c = new CSharp("red");   // 因为csharp是一个抽象类,不能进行实例化
		
		CRectangle cre = new CRectangle("blue",5,6);
		cre.show();
		cre.show_area();
		
		// 多态性实验
		CSharp cs[]= new CSharp[5];
		
		cs[1] = new CCircle("r",5.02f);
		cs[2] = new CRectangle("b",4,3);
		
		for(int i=1;i<3;i++){
			cs[i].show();
			cs[i].show_area();
			
		}
		
		
		
		
		
	}

}

你可能感兴趣的:(关于JAVA多态性)