Gabarito disponível
Considere o código em Python 3 a seguir:
class A:
def funA(self, x):
pass
class B(A):
def funB(self, x, y):
pass
def funC(self, x):
pass
class C(A):
def funD(self, x):
pass
class D(B):
def funE(self, x):
pass
Como resultado, uma instância da classe “D” somente possui acesso ao(s) método(s):
class A:
def funA(self, x):
pass
class B(A):
def funB(self, x, y):
pass
def funC(self, x):
pass
class C(A):
def funD(self, x):
pass
class D(B):
def funE(self, x):
pass
Como resultado, uma instância da classe “D” somente possui acesso ao(s) método(s):
Resolução comentada
A instância de D herda de B e A: funA, funB, funC, funE.
D herda de B, que herda de A. Logo acessa funE (própria), funB e funC (de B) e funA (de A). funD pertence a C, fora da hierarquia.
Análise das alternativas
A) Ignora a herança. C e D) Incluem funD, de C. E) Omite funA, herdado indiretamente.
Referência: Python 3: herança.
Resolução comentada do VaiConcursos.