que estaba leyendo la documentación de Python sobre classes y encontré este párrafo, que no estoy seguro acerca de:Llamar a Métodos anulado en clase derivada de la clase Base
clases derivadas pueden reemplazar los métodos de sus clases base. Dado que los métodos no tienen privilegios especiales cuando llamamiento otros métodos de la misma objeto, un método de una clase base que llama a otro método definido en la misma clase de base puede terminar llamar a un método de una clase derivada que anulaciones eso. (Para los programadores C++: todos los métodos en Python son efectivamente virtual.)
Ejemplo:
class A:
def foo(self):
self.bar()
def bar(self):
print "from A"
class B(A):
def foo(self):
self.bar()
def bar(self):
print "from B"
¿Quiere decir esto que un objeto de clase A obj = A()
puede de alguna manera terminar la impresión "de B" ? ¿Estoy leyendo esto correctamente? Me disculpo si esto no tiene sentido. Estoy un poco confundido sobre cómo maneja Python Herencia y sobreescritura. ¡Gracias!
Para expandir, la palabra clave es _may_ llamar a un método de una clase derivada. 'obj = B()' _would_ print "from B". –