继承、多态与组合
面向对象与高级 Python#Python全栈#第三阶段#面向对象与高级 Python#继承、多态与组合约 513 字 · 1 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
子类如何继承与覆盖父类方法?
追问 覆盖后如何调用原逻辑,并保持参数与返回值约定?
子类定义 __init__() 后,父类初始化会自动执行吗?
追问 漏掉父类初始化可能导致哪些属性缺失?
super() 的作用是什么?
追问 为什么更准确的理解是沿方法解析顺序继续查找,而不只是“直接调用父类”?
isinstance() 与 issubclass() 分别判断什么?
追问 检查一个对象与检查一个类的继承关系如何区别?
什么是鸭子类型?
追问 函数只需要对象提供
send() 方法时,是否一定要求对象继承同一个具体类?如何用统一接口接入短信与邮件两种通知实现?
追问 返回值、失败异常与调用参数应该如何保持一致?
抽象基类与抽象方法适合什么场景?
追问 使用
abc 后,未实现必需方法的子类能否直接实例化?继承与组合如何选择?
追问 订单“有一个”支付服务,是否应继承支付服务?替换依赖时组合有什么优势?
多继承的方法解析顺序 MRO 是什么?
追问 如何查看
__mro__?菱形继承中,统一使用协作式 super 需要哪些约定?Mixin 应该承担什么职责?
追问 小范围功能复用与复杂业务父类有什么区别?属性冲突和初始化链如何控制?
类与继承相关行为可结合 Python 官方类教程 用独立样例验证。