您的位置:首页 > 其它

接上篇,通过接口实现多态,求三角形,矩形,圆周长面积

2017-02-24 18:57 513 查看
/*
通过接口实现多态。
*/
public class GraphTest {
public static void main(String[] args) {
GraphTest e = new GraphTest();
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());
}
}

interface Graph {
double p();

double area();
}

/*
abstract class Graph {
public abstract double p();

public abstract double area();
}
*/

class Rectangle implements 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 implements 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 implements 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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐