Ed
há 2 anos
Vamos analisar as opções para identificar a implementação correta de herança em Python para representar um livro como uma classe filha de uma classe Material. A classe `Material` deve ter um construtor que aceita `titulo` e `ano_publicacao`. A classe `Livro`, que herda de `Material`, deve chamar o construtor da classe pai e também adicionar o atributo `autor`. Vamos analisar cada alternativa: A ```python class Material: def __init__(self, titulo, ano_publicacao): self.titulo = titulo self.ano_publicacao = ano_publicacao class Livro(Material): def __init__(self, titulo, ano_publicacao, autor): Material.__init__(self, titulo, ano_publicacao) self.autor = autor ``` - Correta. A classe `Livro` herda de `Material` e chama corretamente o construtor da classe pai. B ```python class Material: def __init__(self, titulo, ano_publicacao): self.titulo = titulo self.ano_publicacao = ano_publicacao class Livro: def __init__(self, titulo, ano_publicacao, autor): Material.__init__(self, titulo, ano_publicacao) self.autor = autor ``` - Incorreta. A classe `Livro` não herda de `Material`. C ```python class Material: def __init__(self, titulo, ano_publicacao): self.titulo = titulo self.ano_publicacao = ano_publicacao class Livro(Material): def __init__(self, titulo, autor): self.titulo = titulo self.autor = autor ``` - Incorreta. Não chama o construtor da classe pai e não inclui `ano_publicacao`. D ```python class Material: def __init__(self, titulo, ano_publicacao): self.titulo = titulo self.ano_publicacao = ano_publicacao class Livro(Material): def __init__(self, autor): self.autor = autor ``` - Incorreta. Não chama o construtor da classe pai e não inclui `titulo` e `ano_publicacao`. E ```python class Material: def __init__(self, titulo, autor): self.titulo = titulo self.autor = autor class Livro(Material): def __init__(self, ano_publicacao): self.ano_publicacao = ano_publicacao ``` - Incorreta. A classe `Material` não tem `ano_publicacao` e a classe `Livro` não chama o construtor da classe pai. Portanto, a alternativa correta é a A.
Ed
há 2 anos
Analisando as opções apresentadas: A) A implementação da classe Livro como uma classe filha de Material está correta, pois a classe Livro herda os atributos de Material e adiciona o atributo autor de forma adequada. B) Nesta opção, a classe Livro não herda de Material, o que vai contra o conceito de herança proposto no enunciado. C) Nesta opção, a classe Livro herda de Material, porém a forma como o construtor é definido não está de acordo com a proposta inicial, pois não inclui o ano de publicação. D) Nesta opção, a classe Livro herda de Material, mas o construtor da classe Livro não inclui o título e o ano de publicação, o que não condiz com a proposta de herança. E) Nesta opção, a classe Livro herda de Material, porém o construtor da classe Livro não inclui o autor, que é um dos atributos esperados. Portanto, a opção correta que apresenta a implementação correta de herança em Python para representar um livro como uma classe filha de Material é a opção A: ```python class Material: def __init__(self, titulo, ano_publicacao): self.titulo = titulo self.ano_publicacao = ano_publicacao class Livro(Material): def __init__(self, titulo, ano_publicacao, autor): Material.__init__(self, titulo, ano_publicacao) self.autor = autor ```