面向对象案例 - 多态,继承
1.求矩形、正方形和圆形的面积与周长
package randi; import static java.lang.Math.PI; public class ShapeDemo { public static void main(String[] args) { Shape[] shas = new Shape[] { new Circle(10), new Rect(5, 6), new Squr(10) }; Shape sha = new Shape(); for (int i = 0; i < shas.length; i++) { sha.print(shas[i]); } // Circle s1 = new Circle(10); // Rect s2 = new Rect(5, 6); // Squr s3 = new Squr(10); // // sha.print(s1); // sha.print(s2); // sha.print(s3); } } class Shape { public void print(Shape sha) { System.out.println(sha.getName() + "面积: " + sha.getArea()); System.out.println(sha.getName() + "周长: " + sha.getGirth()); System.out.println("---------------"); } public double getArea() { return -1; } public double getGirth() { return -1; } public String getName() { return null; } } class Circle extends Shape { private double radius; public Circle() {} public Circle(double radius) { this.radius = radius; } public double getArea() { return PI * radius * radius; } public double getGirth() { return PI * radius * 2; } public String getName() { return "Cir"; } } class Rect extends Shape { private double length; private double width; public Rect() {} public Rect(double length, double width) { this.length = length; this.width = width; } public double getArea() { return width * length; } public double getGirth() { return (width + length) * 2; } public String getName() { return "Rect"; } } class Squr extends Rect { public Squr() {} public Squr(double length) { super(length, length); } public String getName() { return "Squr"; } }