定义一个 Point 类, 含有一个 print方法,再定义一个类 Point3d, 继承自父类 Point类, 并覆盖父类的同名方法 print()。在 main 方法中分别调用父类和子类的 print()。
时间: 2024-11-25 09:15:40 浏览: 7
类Point_point类_
首先,我们创建一个名为 `Point` 的基础类,它包含一个 `print()` 方法,用于显示点的基本信息,例如坐标。然后,我们定义一个名为 `Point3D` 的子类,它继承自 `Point`,并覆盖了 `print()` 方法,以便我们可以根据三维空间的特点打印点的坐标。
```java
// 父类 Point
class Point {
private double x;
private double y;
public Point(double x, double y) {
this.x = x;
this.y = y;
}
// 父类的 print 方法
public void print() {
System.out.println("Point at (" + x + ", " + y + ")");
}
}
// 子类 Point3D
class Point3D extends Point {
private double z;
public Point3D(double x, double y, double z) {
super(x, y);
this.z = z;
}
// 覆盖父类的 print 方法,添加z坐标
@Override
public void print() {
System.out.println("Point3D at (" + x + ", " + y + ", " + z + ")");
}
}
public class Main {
public static void main(String[] args) {
// 创建一个 Point 对象
Point point = new Point(1.0, 2.0);
// 调用父类的 print 方法
point.print();
// 创建一个 Point3D 对象
Point3D point3D = new Point3D(3.0, 4.0, 5.0);
// 虽然它是 Point3D 类型,但也可以通过父类引用调用 print 方法,会执行子类的实现
point3D.print();
}
}
```
在这个例子中,当我们在 `main` 方法中分别对 `Point` 和 `Point3D` 实例调用 `print()` 方法时,会按照各自的重写版本打印出坐标。这展示了多态性,即一个统一的接口 `print()`,通过子类的不同实现可以表达不同的行为。
阅读全文