2026-05-25 抽象类与接口:从abstract到Downloadable

抽象类

Item加abstract class,禁止直接new Item()。抽象类只当骨架,不能被实例化。

抽象方法canBorrow()——只声明不实现,子类必须自己写。Book返回true,Magazine返回false。

接口

新建Downloadable接口,声明download()。EBook继承Book同时实现Downloadable。

接口 vs 抽象类

  • 抽象类有状态(字段、构造方法),是骨架
  • 接口无状态,是轻量的能力标签
  • 单继承限制迫使用接口组合能力

设计直觉进化

从第5课删boolean,到第6课抽Item父类,到第7课选接口而不在Item加boolean downloadable。三次决策方向一致:不污染父类。


2026-05-25 抽象类与接口:从abstract到Downloadable
http://example.com/2026/05/25/2026-05-25 抽象类与接口:从abstract到Downloadable/
作者
北街
发布于
2026年5月25日
许可协议