Java多态性练习——几何图形

javase多态性的理解练习题——几何图形 

问题描述:

Java多态性练习——几何图形_第1张图片

解题思路:

按照题目要求定义相关类即可,在测试类的两个方法中使用多态来完成方法的定义调用~

解题代码:

父类:GeometricObject

public class GeometricObject {
	
	protected String color;
	protected double weight;
	
	public GeometricObject(String color, double weight) {
		super();
		this.color = color;
		this.weight = weight;
	}
	
	public String getColor() {
		return color;
	}
	public void setColor(String color) {
		this.color = color;
	}
	public double getWeight() {
		return weight;
	}
	public void setWeight(double weight) {
		this.weight = weight;
	}
	
	public double findArea() {
		return 0.0;
	}
}

子类一:Circle

public class Circle extends GeometricObject {
	
	private double redius;
	public Circle(double redius,String color,double weight) {
		super(color, weight);
		this.redius = redius;
	}
	public double getRedius() {
		return redius;
	}
	public void setRedius(double redius) {
		this.redius = redius;
	}
	
	@Override
	public double findArea() {
		return Math.PI * redius * redius;
	}
}

子类二:MyRectangle

public class MyRectangle extends GeometricObject {
	
	private double width;
	private double height;
	
	public MyRectangle(double width,double height,String color,double weight) {
		super(color, weight);
		this.width = width;
		this.height = height;
	}
	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;
	}
	
	@Override
	public double findArea() {
		return width * height;
	}
	
}

测试类:GeometricTest

public class GeometricTest {

	public static void main(String[] args) {
		GeometricTest ts = new GeometricTest();
		GeometricObject c1 = new Circle(2, "红", 1);
		GeometricObject c2 = new Circle(1, "绿", 2);
		GeometricObject r1 = new MyRectangle(1, 2, "黑", 1);
		ts.displayGeometriObject(r1);
		ts.displayGeometriObject(c1);
	}
	public boolean equalsArea(GeometricObject geo1,GeometricObject geo2){
		if(geo1.findArea() == geo2.findArea()) return true;
		return false;
	}
	public void displayGeometriObject(GeometricObject o) {
		System.out.println(o.findArea());
	}
}

运行结果:

你可能感兴趣的:(Java学习,#,Javase,java,后端)