Herança: Considere o seguinte programa em Python: class Cachorro: def __init__(self, idade): self.idade = idade class Dalmata(Cachorro): def __init__(self, idade, pedigree): super(Dalmata, self).__init__(idade) self.pedigree = pedigree d = Dalmata(3, True) print(d.idade, d.pedigree) Assinale a alternativa correta:

Questão

Considere o seguinte programa em Python:

class Cachorro: def init(self, idade): self.idade = idade

class Dalmata(Cachorro): def init(self, idade, pedigree): super(Dalmata, self).init(idade) self.pedigree = pedigree

d = Dalmata(3, True) print(d.idade, d.pedigree)

Assinale a alternativa correta:

Alternativas

a) A palavra chave “super” na linha 7 é usada para ter acesso global às variáveis do programa.

b) O objeto d é da classe Dalmata e representa um cachorro dalmata de 3 anos sem pedigree.

c) O objeto d é da classe Dalmata, mas não possui as características da classe Cachorro.

d) O programa possui duas classes, e cada classe possui dois atributos cada.

e) O objeto d é da classe Dalmata, que também possui as características de um Cachorro.

97%
Explicação

Vamos analisar o código:

  1. Herança
  • class Dalmata(Cachorro): indica que Dalmata herda de Cachorro. Logo, um objeto Dalmata também tem (herda) as características/atributos de Cachorro.
  1. Construtor e uso de super
  • Em Dalmata.__init__(self, idade, pedigree), a linha:

    super(Dalmata, self).__init__(idade)

    chama o construtor (__init__) da classe pai Cachorro, inicializando o atributo self.idade.

  • Depois, self.pedigree = pedigree cria/inicializa o atributo específico de Dalmata.

  1. Instanciação
  • d = Dalmata(3, True) cria um objeto da classe Dalmata com idade = 3 e pedigree = True.
  • Portanto, print(d.idade, d.pedigree) exibirá 3 True.

Analisando as alternativas:

  • (a) Falsa: super não dá “acesso global” a variáveis; ele acessa métodos/atributos da superclasse.
  • (b) Falsa: pedigree é True, então tem pedigree.
  • (c) Falsa: por herança, Dalmata possui sim as características de Cachorro.
  • (d) Falsa: cada classe não tem “dois atributos cada”; Cachorro define idade, e Dalmata define pedigree (além de herdar idade).
  • (e) Verdadeira: d é Dalmata e também possui características de Cachorro.

Alternativa correta: (e).

Questões relacionadas

Ver últimas questões

Comece a estudar de forma inteligente hoje mesmo

Resolva questões de concursos e vestibulares com IA, gere simulados personalizados e domine os conteúdos que mais caem nas provas.

Cancele quando quiser.