package instanceoper;
import java.util.Date;
public class SimpleGeometricObject {
private String color="white";
private boolean filled;
private Date dataCreated;
public SimpleGeometricObject() {
dataCreated =new Date();
}
public SimpleGeometricObject(String color,boolean filled) {
dataCreated =new Date();
this.color =color;
this.filled = filled;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public boolean isFilled() {
return filled;
}
public void setFilled(boolean filled) {
this.filled = filled;
}
public Date getDataCreated() {
return dataCreated;
}
public void setDataCreated(Date dataCreated) {
this.dataCreated = dataCreated;
}
public String tostring() {
return "create on" dataCreated "\ncolor: " color "and color:" filled;
}
}
CircleFromSimpleGeometricObject类:
package instanceoper;
public class CircleFromSimpleGeometricObject extends SimpleGeometricObject{
private double radius;
public final double PI= 3.14;
public CircleFromSimpleGeometricObject() {}
public CircleFromSimpleGeometricObject(double radius) {
this.radius =radius;
}
public CircleFromSimpleGeometricObject(double radius ,String color,boolean filled) {
this.radius = radius;
setColor(color);
setFilled(filled);
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double getArea() {
return radius *radius*PI;
}
public double getDiameter() {
return 2*radius;
}
public void printCircle() {
System.out.println("The circle is created " getDataCreated() "and the radius is" radius);
}
}
RectangleFromSimpleGeometricObject类:
package instanceoper;
public class RectangleFromSimpleGeometricObject extends SimpleGeometricObject{
private double width;
private double height;
public RectangleFromSimpleGeometricObject() {}
public RectangleFromSimpleGeometricObject(double width,double height) {
this.width =width;
this.height = height;
}
public RectangleFromSimpleGeometricObject(double width,double height,String color,boolean filled) {
this.width =width;
this.height = height;
setColor(color);
setFilled(filled);
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public double getArea() {
return width *height;
}
public double getPerimeter() {
return 2*(width height);
}
}
测试类:
package instanceoper;
import instanceoper.CircleFromSimpleGeometricObject;
import instanceoper.RectangleFromSimpleGeometricObject;
public class CastDemo {
public static void main(String[] args) {
Object object1 = new CircleFromSimpleGeometricObject(1);
Object object2 = new RectangleFromSimpleGeometricObject(1,1);
displayObject(object1);
displayObject(object2);
}
public static void displayObject(Object object) {
if(object instanceof CircleFromSimpleGeometricObject) {
System.out.println("The circle area is "
((CircleFromSimpleGeometricObject)object).getArea());
System.out.println("The circle diameter is "
((CircleFromSimpleGeometricObject)object).getDiameter());
}else if(object instanceof RectangleFromSimpleGeometricObject) {
System.out.println("The rectangle area is "
((RectangleFromSimpleGeometricObject)object).getArea());
}
}
}