Java. 定义一个形状抽象类,包含求周长和面积的方法,私有化成员变量(Name,Color)。再定义圆类和正方形类的继承形状类,实现求周长和面积的方法。
时间: 2024-12-24 10:28:31 浏览: 13
在Java中,我们可以创建一个名为`Shape`的抽象类作为基础,来表示所有形状共享的行为特征。首先,我们定义一个简单的抽象类结构:
```java
abstract class Shape {
private String name;
private String color; // 私有变量,防止直接访问
public Shape(String name, String color) {
this.name = name;
this.color = color;
}
// 抽象方法,需要子类覆盖实现
abstract double getPerimeter();
abstract double getArea();
// 提供getter方法
public String getName() {
return name;
}
public String getColor() {
return color;
}
}
```
接着,我们分别创建两个具体的形状子类,`Circle` 和 `Square`,它们继承自 `Shape` 并实现了 `getPerimeter()` 和 `getArea()` 方法:
```java
class Circle extends Shape {
private double radius;
public Circle(String name, String color, double radius) {
super(name, color);
this.radius = radius;
}
@Override
double getPerimeter() {
return 2 * Math.PI * radius;
}
@Override
double getArea() {
return Math.PI * radius * radius;
}
}
class Square extends Shape {
private double sideLength;
public Square(String name, String color, double sideLength) {
super(name, color);
this.sideLength = sideLength;
}
@Override
double getPerimeter() {
return 4 * sideLength;
}
@Override
double getArea() {
return sideLength * sideLength;
}
}
```
在这个例子中,`Circle` 和 `Square` 都有自己的特定计算周长和面积的方式,并通过继承 `Shape` 来实现抽象方法。这就是如何在Java中定义一个抽象类并利用多态性来处理不同形状的特性。
阅读全文