Junior — Middle
Como é que os mecanismos de herança diferem nas linguagens de programação Python e C#?
sobes.tech IA
Resposta da IA
Em Python e C#, os mecanismos de herança têm características comuns, mas também diferenças importantes:
-
Python:
- Suporta herança múltipla: uma classe pode herdar de várias classes base.
- Utiliza o método de resolução de ordem (MRO, Method Resolution Order) para determinar a ordem de chamada dos métodos na herança múltipla.
- Todas as classes herdam por padrão da classe base
object. - A herança é dinâmica, podendo alterar atributos e métodos em tempo de execução.
-
C#:
- Só suporta herança simples: uma classe pode herdar apenas de uma classe base.
- Para implementar herança múltipla, usa-se o mecanismo de interfaces: uma classe pode implementar várias interfaces.
- A herança é estritamente tipada e estática.
Exemplo de herança múltipla em Python:
class A:
def method(self):
print("A")
class B:
def method(self):
print("B")
class C(A, B):
pass
c = C()
c.method() # Vai imprimir "A" de acordo com o MRO
Em C#, isso é realizado através de interfaces:
interface IA { void Method(); }
interface IB { void Method(); }
class C : IA, IB {
public void Method() {
Console.WriteLine("C");
}
}
Portanto, a principal diferença é que Python suporta herança múltipla de classes diretamente, enquanto C# suporta apenas herança simples, com herança múltipla através de interfaces.