Junior — Middle
¿En qué se diferencian los mecanismos de herencia en los lenguajes de programación Python y C#?
sobes.tech AI
Respuesta de la IA
En Python y C#, los mecanismos de herencia tienen características comunes, pero también diferencias importantes:
-
Python:
- Soporta herencia múltiple: una clase puede heredar de varias clases base.
- Utiliza el método de resolución de orden (MRO, Method Resolution Order) para determinar el orden de llamada a los métodos en la herencia múltiple.
- Todas las clases heredan por defecto de la clase base
object. - La herencia es dinámica, se pueden cambiar atributos y métodos en tiempo de ejecución.
-
C#:
- Solo soporta herencia simple: una clase puede heredar solo de una clase base.
- Para implementar herencia múltiple, se utilizan interfaces: una clase puede implementar varias interfaces.
- La herencia está estrictamente tipada y es estática.
Ejemplo de herencia múltiple en Python:
class A:
def method(self):
print("A")
class B:
def method(self):
print("B")
class C(A, B):
pass
c = C()
c.method() # Imprimirá "A" según MRO
En C#, esto se realiza mediante interfaces:
interface IA { void Method(); }
interface IB { void Method(); }
class C : IA, IB {
public void Method() {
Console.WriteLine("C");
}
}
Por lo tanto, la principal diferencia es que Python soporta herencia múltiple de clases directamente, mientras que C# solo soporta herencia simple, con herencia múltiple a través de interfaces.