Java作为一门强类型语言,在进行面积和周长的计算时,可以使用抽象类来实现多态性,增强代码的可读性和可扩展性。
abstract class Shape { protected double area; protected double perimeter; abstract void calculateArea(); abstract void calculatePerimeter(); void printArea() { System.out.println("面积为:" + area); } void printPerimeter() { System.out.println("周长为:" + perimeter); } } class Circle extends Shape { private double radius; Circle(double radius) { this.radius = radius; } void calculateArea() { area = Math.PI * radius * radius; } void calculatePerimeter() { perimeter = 2 * Math.PI * radius; } } class Rectangle extends Shape { private double width; private double length; Rectangle(double width, double length) { this.width = width; this.length = length; } void calculateArea() { area = width * length; } void calculatePerimeter() { perimeter = 2 * (width + length); } }
上面的代码中,我们创建了一个抽象类Shape,它包含两个变量——面积和周长,和两个抽象方法——计算面积和周长,在这个抽象类中,我们定义了两个输出方法,一个输出面积,一个输出周长。
下面我们分别定义了圆和矩形两个类,继承了Shape这个抽象类,并实现了计算面积和周长的方法。
public static void main(String[] args) { Circle circle = new Circle(5); circle.calculateArea(); circle.calculatePerimeter(); circle.printArea(); circle.printPerimeter(); Rectangle rectangle = new Rectangle(3, 4); rectangle.calculateArea(); rectangle.calculatePerimeter(); rectangle.printArea(); rectangle.printPerimeter(); }
在这个示例中,我们首先实例化了一个圆对象,然后用它的calculateArea()和calculatePerimeter()方法计算出圆的面积和周长,并使用printArea()和printPerimeter()方法输出结果;同样地,我们用Rectangle类来计算矩形的面积和周长,输出结果。
通过抽象类的多态性,在我们需要增加新的图形时,只需要创建一个新的类并继承Shape类即可。而不需要修改Shape类,这样就保证了代码的可扩展性以及可读性。