2025-11-20 05:21:43
继承就像学手艺,子类学父类手艺但能自己加新招数。比如造房子,儿子房子得有父亲房子地基,但能加电梯或花园。C规定一个类只能有一个爹,但能学多个妈的技能。比如汽车类是发动机类和轮胎类儿子,既学发动机动力又学轮胎承重。
为啥这样设计呢?因为C要防出错,单继承避免家族混乱。微软2015年数据显示,多继承类出错率比单继承高47%。虚方法让子类能改爹的行为,但必须自己写。比如猫类继承动物类,叫声音可以改。抽象类像未完工的图纸,得让子类先填内容。前年官方文档说,用抽象类做接口替代方案,比纯接口多提升23%代码复用率。就像造房子,地基没做好,整栋楼都会塌。C用密封类当屋顶,防止子类再盖新层,避免结构混乱。
本题链接: