pta面向对象思想之多态
时间: 2024-12-30 16:36:09 浏览: 12
### 关于PTA平台中面向对象思想中的多态概念
#### 定义与理解
多态是指允许不同子类型的对象通过相同的接口执行不同的行为。这种机制使得调用者无需关心具体实现细节,只需关注公共接口即可[^1]。
#### 示例说明
为了更好地展示这一特性,在`jmu-Java-03面向对象基础-04-形状-继承`题目背景下可以构建如下场景:
假设存在一个抽象基类 `Shape` ,它包含了两个纯虚函数用于计算周长和面积,并声明了一个不可变静态成员变量表示圆周率π=3.14 。接着创建多个派生自该基类的具体图形类如矩形(Rectangle),圆形(Circle)等,各自实现了上述提到的方法。
当编写一段通用代码遍历一组未知确切类型的 Shape 对象列表并依次打印它们各自的周长及面积时,即使这些实例属于不同类型(即 Rectangle 或 Circle),只要遵循共同的接口约定,则能够自动调用对应版本的方法完成相应功能——这就是所谓的运行时期绑定或多态性的体现。
```java
// 抽象类 Shape 的定义
abstract class Shape {
public static final double PI = 3.14;
// 声明获取周长的方法为抽象方法
abstract public double getPerimeter();
// 声明获取面积的方法也为抽象方法
abstract public double getArea();
}
class Rectangle extends Shape{
private double width, height;
public Rectangle(double w, double h){
this.width=w;this.height=h;
}
@Override
public double getPerimeter(){
return (width+height)*2 ;
}
@Override
public double getArea(){
return width*height;
}
}
class Circle extends Shape{
private double radius;
public Circle(double r){
this.radius=r;
}
@Override
public double getPerimeter(){
return 2 *PI*radius;
}
@Override
public double getArea(){
return PI*(Math.pow(radius,2));
}
}
```
以上展示了如何利用 Java 中的多态性质来处理具有相同超类型的不同实体之间的差异性操作方式[^4]。
阅读全文