覆盖继承的方法
本课属于 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!"(重写后的版本)重写的关键规则:
- 与父类方法名相同
- 相同或兼容的参数
- 子类的版本会在子对象上调用
- 不需要特殊关键字,只需定义方法即可
挑战
给你一个 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());
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
面向对象编程中的所有课
8整理 OOP 代码
将类组织到模块中自己练习: JavaScript 在线编译器