用途:该技能用于在创建子类、实现接口或重写父类方法时,判断并避免违反里氏替换原则(LSP)。核心规则是:若 S 是 T 的子类型,则类型 T 的对象应能被类型 S 的对象替换而不破坏程序;子类必须遵守父类的契约。
主要能力:提供替换测试(能否用子类替换父类的每一处实例而不出错)、重写坏味道识别(重写方法抛异常、空操作、改变行为语义),以及正确模式示例,如用接口定义能力、用组合共享行为。
使用方式:在继承层次显得“勉强”、想在重写方法中抛异常或做空操作、或使用 instanceof 区分处理子类型时,停下来改用接口与组合。资料给出的正确做法包括:Square 与 Rectangle 各自实现 Shape 接口;Bird 基类加 Flyable 接口;将 Readable 与 Writable 拆分为独立接口。
适用场景:面向对象设计、代码审查、重构继承结构。
限制:资料未提供安装命令、平台信息、收费或价格信息;内容以原则与示例为主,未涉及具体语言运行时或工具链配置。