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/