擅长:python、mysql、java
<p>与其删除继承的属性,不如通过mix-in类在子类中继承<code>destroy</code>。这保留了继承的正确“is-a”语义。在</p>
<pre><code>class Destructible(object):
def destroy(self):
pass
class BasePlanet(object):
...
class Planet(BasePlanet, Destructible):
...
class IndestructiblePlanet(BasePlanet): # Does *not* inherit from Destructible
...
</code></pre>
<p>您可以在<code>Destructible</code>、<code>Planet</code>或从{<cd4>}继承的任何类中为<code>destroy</code>提供合适的定义。在</p>