定义一个形状抽象类,包含求周长和面积的方法,私有化成员变量(Name,Color)。再定义圆类和正方形类的继承形状类,并运行实现求周长和面积的方法。
时间: 2024-12-24 17:28:40 浏览: 2
在面向对象编程中,可以创建一个名为`Shape`的抽象类,作为所有形状的基础,它包含公共的行为或操作,比如求周长和面积。这里是一个简单的例子:
```java
// 抽象Shape类
abstract class Shape {
private String name;
private String color; // 私有化成员变量
public Shape(String name, String color) {
this.name = name;
this.color = color;
}
// 普通方法
public abstract double getPerimeter(); // 求周长
public abstract double getArea(); // 求面积
// 提供getter方法
public String getName() {
return name;
}
public String getColor() {
return color;
}
}
// 圆形类 Circle 继承自 Shape
class Circle extends Shape {
private double radius;
public Circle(String name, String color, double radius) {
super(name, color);
this.radius = radius;
}
@Override
public double getPerimeter() {
return 2 * Math.PI * radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
}
// 正方形类 Square 继承自 Shape
class Square extends Shape {
private double side;
public Square(String name, String color, double side) {
super(name, color);
this.side = side;
}
@Override
public double getPerimeter() {
return 4 * side;
}
@Override
public double getArea() {
return side * side;
}
}
// 使用示例
public class Main {
public static void main(String[] args) {
Circle circle = new Circle("Circle", "Blue", 5);
System.out.println("Circle perimeter: " + circle.getPerimeter());
System.out.println("Circle area: " + circle.getArea());
Square square = new Square("Square", "Red", 7);
System.out.println("Square perimeter: " + square.getPerimeter());
System.out.println("Square area: " + square.getArea());
}
}
```
在这个例子中,我们定义了`getPerimeter()`和`getArea()`两个抽象方法,每个具体的形状(如`Circle`和`Square`)都必须提供它们自己的实现。
阅读全文