【发布时间】:2015-09-04 14:16:56
【问题描述】:
假设我有一个父类A 和一个子类B。现在A 有 10 个方法,而 B 只需要其中的三个方法。如何做到这一点?
【问题讨论】:
-
不能
B就忽略其他七种方法吗?或者您能否将共享方法重构为A和B共享的超类,使它们成为兄弟?如果你想覆盖类中继承的方法,只需在该类定义中实现它们即可。 -
Liskov substitution principle 要求 A 的子类型 B 至少具有 A 的接口。如果您不希望这样,那么您可能不希望 B 成为 A 的子类型。
-
创建一个包含 3 个方法的父类。从父类继承 A 类和 B 类。 A 类将保留其 7 个方法,B 类将不知道它们的任何信息。类似于@jonrsharpe 的建议(我 +1 了),但我提倡这种方法只是“忽略”其他七种方法,因为如果您不是唯一的开发人员,那么有一天有人可能会忘记他们为什么“忽略”它们。
标签: python python-2.7 oop inheritance methods