2026-05-25 继承与多态:借书系统的五轮重构

重构过程

在自己写的借书系统上叠继承和多态。

第一步:创建Item父类,抽取公共字段(name/author/id/holderId)。初始错误——Item构造无参+自赋值this.id=id,Book绕过super()直接赋值。纠正为有参构造+super(name,author,id)。

核心觉悟:继承不只是省重复代码,是父类定规则,子类遵守。

多态验证

LibraryService参数从Book改为Item——借书逻辑零改动兼容所有子类。新建Magazine子类传进同一套借还逻辑,成功。

向上转型 vs 向下转型

  • 向上:Item item = new Book(),自动安全
  • 向下:Book book = (Book) item,编译通过运行可能炸ClassCastException

咖啡杯比喻:编译器看杯盖标签(声明类型),JVM喝一口知道里面是什么(实际类型)。

关键设计直觉

不同的点不写入构造方法,写成普通方法方便重写。构造保证结构完整,重写允许行为革命。


2026-05-25 继承与多态:借书系统的五轮重构
http://example.com/2026/05/25/2026-05-25 继承与多态:借书系统的五轮重构/
作者
北街
发布于
2026年5月25日
许可协议