/*
使用继承与多态的思想。
优点:
避免了代码的重复,降低了程序的耦合度,
便于以后的维护。
*/
public class Ex2 {
public static void main(String[] args) {
Ex2 e = new Ex2();
e.print(new Circle(10));
e.print(new Rectangle(5, 4));
e.print(new Triangle(7));
}
public void print(Graph g) {
System.out.println(g.p());
System.out.println(g.area());
}
}
class Graph {
public double p() {
return 0;
}
public double area() {
return 0;
}
}
/*
abstract class Graph {
public abstract double p();
public abstract double area();
}
*/
class Rectangle extends Graph {
private double length;
private double width;
public Rectangle(double length, double width) {
this.length = length;
this.width = width;
}
@Override
public double p() {
return (length + width) * 2;
}
@Override
public double area() {
return length * width;
}
}
class Triangle extends Graph {
private double length;
public Triangle(double length) {
this.length = length;
}
@Override
public double p() {
return length * 3;
}
@Override
public double area() {
double height = length * length - (length / 2) * (length / 2);
height = Math.sqrt(height);
return length * height / 2;
}
}
class Circle extends Graph {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double p() {
return 2 * Math.PI * radius;
}
@Override
public double area() {
return Math.PI * radius * radius;
}
}
使用继承与多态思想编写矩形,等边三角形,圆,求周长与面积
最新推荐文章于 2021-12-07 09:09:43 发布