Buscar

Herança em Python é um conceito fundamental da programação orientada a objetos (POO) que permite que uma classe herde atributos e métodos de outra ...

Herança em Python é um conceito fundamental da programação orientada a objetos (POO) que permite que uma classe herde atributos e métodos de outra classe.


class Animal:   

    def __init__(self, age: int, height: int, weight: int, position: tuple):       

        self.age = age

        self.height = height

        self.weight = weight

        self.position = position  # position [position_x, position_y, position_z]


    def move_x(self):

        self.position[0] += 1


class Dog(Animal):

    def __init__(self, age: int, height: int, weight: int, position: tuple):

        super().__init__(age, height, weight, position)

    def move_x(self):

        self.position[2] += 2


class Cat(Dog):

    def __init__(self, age: int, height: int, weight: int, position: tuple, fur_type = 'liso'):

        super().__init__(age, height, weight, position, fur_type)            def move_x(self):        self.position[3] += 4


melo = Cat(age=10, weight=30, position=(0, 0, 0), height=10)

print(melo.age)

O código acima não está sendo executado. Marque a alternativa que indica o motivo e o porque.

A) O problema é na herança da classe Cat. Está deveria estender (herdar) da classe Animal

B) Não existe atributo fur_type na classe Cat

C) O método mov_x deve ter uma anotação especial na Animal se este for modificado nas suas subclasses.

D) A invocação do construtor de Animal está com um atributo a mais na classe Cat

Respostas

39 pessoas visualizaram e tiraram suas dúvidas aqui
User badge image

Ed Verified user icon

A alternativa correta é a D) A invocação do construtor de Animal está com um atributo a mais na classe Cat. Na classe Cat, o construtor está chamando o construtor da classe pai (Dog) com um argumento adicional (fur_type), que não é esperado pelo construtor da classe Animal. Isso causa um erro na execução do código. Para corrigir, basta remover o argumento "fur_type" da chamada do construtor na classe Cat.

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Responda

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Mais conteúdos dessa disciplina