Questão nº 52

Questão de Gestão de TI · FGV DPGE-RJ 2014 (nº 52)

FGV2014Técnico Superior Especializado em Gestão em Tecnologia da InformaçãoGestão de TI
Gabarito: Dver comentário ↓

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

Resposta comentada

Gabarito Alternativa D

A herança é um mecanismo que permite que uma classe (chamada classe filha ou subclasse) herde atributos e métodos de outra classe (chamada classe pai ou superclasse). Isso promove a reutilização de código e a criação de hierarquias de classes.

  • (A) Incorreta: Abstração é o processo de focar nos aspectos essenciais de algo, ignorando detalhes irrelevantes. Não explica por que y.FaleComigo() funciona.
  • (B) Incorreta: Associação é uma relação entre objetos onde um objeto "usa" outro, mas não implica em compartilhamento de comportamento ou estrutura como na herança.
  • (C) Incorreta: Interface, em linguagens que a suportam explicitamente, define um contrato de métodos que uma classe deve implementar. Python não tem interfaces formais como Java ou C#, e o conceito aqui é sobre comportamento herdado.
  • (D) Correta: A classe Fusca herda da classe Carro. Como Fusca não define seu próprio método FaleComigo, ela herda o método FaleComigo da classe Carro e o utiliza. É por isso que y.FaleComigo() executa o método da classe pai.
  • (E) Incorreta: Polimorfismo significa "muitas formas" e permite que objetos de classes diferentes respondam ao mesmo método de maneiras distintas. Embora o código demonstre um potencial para polimorfismo (se Fusca sobrescrevesse FaleComigo), a saída mostrada é resultado direto da herança do método não sobrescrito. A pegadinha aqui é que, se Fusca tivesse seu próprio FaleComigo com uma mensagem diferente, aí sim seria polimorfismo. Mas, como está, é a herança que permite que y chame o método de Carro.

Fonte: FGV DPGE-RJ 2014 Técnico Superior Especializado em Gestão em Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho