Menu
CoddyTech

覆盖继承的方法

本课属于 Coddy JavaScript 学习旅程的“面向对象编程”单元。第 36 课,共 56 课。

方法重写是指子类提供自己的实现,重写从父类继承而来的方法。子类中的版本会“覆盖”(替换)父类中的版本。

简单示例:

创建一个包含方法的父类:

class Vehicle {
  start() {
    return "Vehicle starting...";
  }
}

创建一个继承父类的子类:

class Car extends Vehicle {
  // 这里会重写 Vehicle 的 start() 方法
  start() {
    return "Car engine roaring to life!";
  }
}

使用这些类:

const vehicle = new Vehicle();
const car = new Car();

console.log(vehicle.start());      // "Vehicle starting..."(原始版本)
console.log(car.start());          // "Car engine roaring to life!"(重写后的版本)

重写的关键规则:

  1. 与父类方法名相同
  1. 相同或兼容的参数
  1. 子类的版本会在子对象上调用
  1. 不需要特殊关键字,只需定义方法即可
challenge icon

挑战

给你一个 Shape 父类和一个 Circle 子类。父类有一个 calculateArea() 方法,会返回 0。

你的任务是在 Circle 类中覆盖 calculateArea() 方法,计算圆的实际面积。

圆的面积公式是: π × 半径²
在 JavaScript 中:Math.PI * this.radius * this.radius

亲手试试

import { Shape } from './shapes.js';
import { Circle } from './shapes.js';

// 测试你的实现
const myCircle = new Circle(5);
console.log(myCircle.calculateArea());
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

面向对象编程中的所有课

自己练习: JavaScript 在线编译器