FC ConcursosFC Concursos

Questão FC331206

Considere o seguinte trecho de um programa escrito na linguagem Python. class Carro(object): def FaleComigo(self): print "Sou um carro" class Fusca (Carro): def FaleComUmFusca(self

Linguagens de Programação

FGV · 2014

Considere o seguinte trecho de um programa escrito na linguagem Python.


class Carro(object):
    def FaleComigo(self):
        print "Sou um carro"


class Fusca (Carro):
    def FaleComUmFusca(self):
        print "Sou um Fusca"
x = Carro()
y = Fusca()


x.FaleComigo()
y.FaleComigo()


No primeiro bloco, o método FaleComigo é definido para a classe Carro, que simplesmente produz a mensagem “Sou um carro” ao ser invocado. Para a classe Fusca, definida no segundo bloco, foi definido o método FaleComUmFusca, que apenas produz a mensagem “Sou um Fusca”. No terceiro bloco, os objetos x e y tornam-se instâncias das classes Carro e Fusca, respectivamente. No quarto bloco, o método FaleComigo é invocado para cada um dos dois objetos, x e y. Ao ser executado, esse programa produz duas linhas na sua tela de saída:


Sou um carro
Sou um carro


A mensagem produzida no comando y.FaleComigo deve-se ao mecanismo de

  1. abstração.
  2. associação.
  3. interface.
  4. herança.
  5. polimorfismo.
Mostrar resposta e comentário

Gabarito

D

Comentário do professor

O comportamento observado decorre do mecanismo de herança. Ao declarar class Fusca(Carro):, a classe Fusca torna‑se classe‑filha de Carro e passa a dispor dos métodos definidos na classe‑pai sem que precisem ser reescritos.

Assim, quando se invoca y.FaleComigo() em uma instância de Fusca, o interpretador procura o método na própria classe e, não encontrando, o resolve na superclasse Carro. Isso explica porque é impressa a mensagem definida em FaleComigo.

A herança permite reaproveitamento de código e estabelece uma relação “é‑um” entre classes (um Fusca é um Carro), razão pela qual métodos da classe pai estão disponíveis para as instâncias da classe filha.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo