6-1-2 从抽象类shape类扩展出一个圆形类Circle
时间: 2024-11-04 14:16:28 浏览: 10
简述抽象类和接口的区别-java接口和抽象类异同.docx
在面向对象编程中,如果有一个抽象类Shape定义了一些共性的属性和行为,比如面积计算、边界绘制等,那么我们可以从这个抽象类Shape出发,创建具体的形状子类,如Circle。举个例子:
首先,我们定义一个名为Shape的抽象类,它可能包含一些抽象方法,如下所示:
```java
public abstract class Shape {
protected double radius; // 圆形半径
public Shape(double radius) {
this.radius = radius;
}
// 抽象方法,需要在每个子类中具体实现
public abstract double getArea();
public abstract void draw();
}
```
然后,我们可以创建一个名为Circle的具体子类,继承自Shape,并实现其抽象方法:
```java
public class Circle extends Shape {
// 实现getArea()方法,圆的面积公式为πr²
@Override
public double getArea() {
return Math.PI * radius * radius;
}
// 实现draw()方法,可以提供一个简单的打印描述
@Override
public void draw() {
System.out.println("Drawing a circle with radius " + radius);
}
}
```
在这个例子中,Circle类不仅继承了Shape类的radius属性,还实现了它的getArea()和draw()方法,使得Circle成为了Shape的一个实例,体现了多态的概念。
阅读全文