O que é uma classe abstrata? Para que serve? Como implementar uma classe abstrata? Como forçar a implementação de métodos abstratos, nas classes que herdam a classe abstrata? Crie uma classe chamada Obra_de_arte, que seja abstrata e tenha o método abstrato definir_autor. Essa classe abstrata deve ser herdada pela classe criada no exercício 2 .

Passo 1

Beleza, vamos lá! O exercício pede para a gente entender o que é uma classe abstrata, para que serve, como implementar uma, e como garantir que as classes que a herdam implementem certos métodos. Além disso, precisamos criar uma classe abstrata chamada Obra_de_arte com um método abstrato definir_autor, que será herdada por uma outra classe que foi criada no exercício 2. Vamos precisar falar sobre conceitos de Programação Orientada a Objetos, especialmente sobre abstração e herança.

Passo 2

Primeiro, o que é uma classe abstrata? Basicamente, uma classe abstrata é como um molde que define certas características e comportamentos, mas não pode ser instanciada diretamente. Ela serve para estabelecer uma estrutura que outras classes concretas vão seguir. Isso é útil quando queremos garantir que todas as classes filhas tenham certos métodos ou atributos.

Passo 3

Para que serve uma classe abstrata? Ela é usada para criar uma base comum para várias classes que compartilham características semelhantes, garantindo que todas elas implementem certos métodos essenciais. Assim, evita-se repetição de código e promove uma melhor organização e manutenção do software.

Passo 4

Como implementar uma classe abstrata? Em muitas linguagens de programação, como Python, usamos módulos específicos para isso. Por exemplo, no Python usamos o módulo abc (Abstract Base Classes). A classe abstrata vai herdar de ABC e os métodos que queremos que sejam obrigatórios nas classes filhas são decorados com @abstractmethod.

Passo 5

Como forçar a implementação de métodos abstratos nas classes que herdam a classe abstrata? Ao declarar um método como abstrato usando o decorador @abstractmethod, qualquer classe que herda da classe abstrata é obrigada a implementar esse método. Se a classe filha não implementar todos os métodos abstratos, ela também será considerada abstrata e não poderá ser instanciada.

Passo 6

Agora, vamos para a parte prática: criar uma classe chamada Obra_de_arte que seja abstrata e tenha o método abstrato definir_autor. Vamos fazer isso em Python usando o módulo abc.
from abc import ABC, abstractmethod

class Obra_de_arte(ABC):
    @abstractmethod
    def definir_autor(self):
        pass

Resposta

A classe abstrata Obra_de_arte está definida com o método abstrato definir_autor, garantindo que qualquer classe que herde dela precise implementar esse método.

Exercícios relacionados

Utilizando a linguagem de programação orientada a objetos de sua preferência, crie uma classe para modelar um livro. Quais atributos e métodos são importantes para um sistema que tem um livro como objeto? Defina os métodos construtor e destrutor da classe.
Diferencie Associação, Agregação e Composição de objetos.
Descreva, em no máximo 200 palavras, o que é um computador e o que ele faz. Sublinhe os substantivos e verbos. Selecione 5 dos substantivos que você sublinhou e, para cada um, crie uma classe, liste seus atributos e comportamentos (verbos). Descreva brevemente como esses objetos interagem entre si e com outros objetos que você criou. Estes passos que você seguiu são típicos do projeto orientado a objetos.
O que são acoplamento e coesão na Orientação a objetos?