##Banco Digital - POO JAVA


###Problema:

Considerando nosso conhecimento no domínio bancário, iremos abstrair uma solução OO em java, para isso, vamos interpretar o seguinte cenário:

"Um banco oferece aos seus clientes dois tipos de contas (corrente e poupança), as quais possuem as funcionalidades de depósito, saque e transferência (entre contas da própria instituição)."


##Pilares:

  • Abstração: Habilidade de concentrar-se nos aspectos essenciais de um domínio, ignorando características menos importantes ou acidentais. Neste contexto, os objetos são abstrações de entidades existentes no domínio em questão.
  • Encapsulamento: Encapsular siginfica esconder a implementação dos objetos, criando assim interfaces de uso mais concisas e fáceis de usar/entender. O encapsulamento favorece principalmente dois aspectos de um sistema: a manutenção e a evolução.
  • Herança: Permite que você defina uma classe filha que reutiliza (herda), estende ou modifica o comportamento de uma classe pai. A classe cujos membros são herdados é chamada de classe base. A classe que herda os membros da classe base é chamada de classe derivada.
  • Polimorfismo: Capacidade de um objeto poder ser referenciado de várias formas, ou seja, é a capacidade de tratar objetos criados a partir das classes específicas como objetos de uma classe genérica.