Conceitos de Programação Orientada a Objetos (POO) em Python

Índice

Seção 1: Definição de Classe e Objeto

class Animal:
    def __init__(self, nome):
        self.nome = nome

    def emitir_som(self):
        pass

gato = Animal("Gato")
print(gato.nome)  # Saída: Gato

Definição da Classe Animal:

Definição do Método emitir_som:

Criação de um Objeto:

Impressão do Nome:

Seção 2: Herança

class Gato(Animal):
    def emitir_som(self):
        return "Miau"

gato = Gato("Bichano")
print(gato.nome)  # Saída: Bichano
print(gato.emitir_som())  # Saída: Miau

Definição da Subclasse Gato:

Sobrescrita do Método emitir_som:

Criação de um Objeto Gato:

Impressão do Nome e Som:

Seção 3: Polimorfismo

class Animal:
    def emitir_som(self):
        pass

class Gato(Animal):
    def emitir_som(self):
        return "Miau"

class Cachorro(Animal):
    def emitir_som(self):
        return "Au Au"

animais = [Gato(), Cachorro()]

for animal in animais:
    print(animal.emitir_som())

Classes Gato e Cachorro:

Lista de Animais:

Iteração e Polimorfismo:

A saída será:

Seção 4: Abstração

from abc import ABC, abstractmethod

class Animal(ABC):
    @abstractmethod
    def emitir_som(self):
        pass

class Gato(Animal):
    def emitir_som(self):
        return "Miau"

gato = Gato()
print(gato.emitir_som())  # Saída: Miau

Uso da Classe Abstrata Animal:

Subclasse Gato:

Criação de um Objeto e Chamada do Método:

Seção 5: Encapsulamento

class ContaBancaria:
    def __init__(self, saldo_inicial):
        self.__saldo = saldo_inicial

    def depositar(self, quantia):
        self.__saldo += quantia

    def sacar(self, quantia):
        if quantia <= self.__saldo:
            self.__saldo -= quantia
            return True
        return False

    def obter_saldo(self):
        return self.__saldo

conta = ContaBancaria(100)
conta.depositar(50)
print(conta.obter_saldo())  # Saída: 150
conta.sacar(75)
print(conta.obter_saldo())  # Saída: 75

Atributos Privados:

Métodos Públicos:

Exemplo de Uso: