第1关:类的继承以及抽象类的定义和使用 - Shape的烦心事
时间: 2024-10-06 08:00:40 浏览: 194
在计算机编程中,特别是面向对象的设计中,类的继承是一种重要的机制,它允许一个新类(称为子类或派生类)从现有类(称为父类或基类)继承属性和方法。首先来看"Shape"这个例子,假设我们有一个形状的基本类,如形状家族中的成员:
```java
// 父类 Shape 定义
abstract class Shape {
protected String color; // 共享属性
public Shape(String color) {
this.color = color;
}
// 抽象方法,所有形状都需要有面积计算
abstract double getArea();
// 具体方法展示通用行为
public void display() {
System.out.println("Color: " + color);
}
}
```
在这个`Shape`类中,`getArea()`是一个抽象方法,意味着它没有具体的实现。子类需要实现这个方法以便提供它们各自的面积计算规则。
例如,我们可以创建一个`Circle`子类来继承`Shape`:
```java
class Circle extends Shape {
private double radius;
public Circle(String color, double radius) {
super(color); // 调用父类构造函数
this.radius = radius;
}
// 实现父类的抽象方法
@Override
double getArea() {
return Math.PI * radius * radius;
}
}
```
现在,`Circle`实例可以调用自己的`getArea()`方法,同时也可以通过父类引用访问共享的属性和方法,展示了多态的优势。
阅读全文