// ✔ Classe abstrata ✔ Herança ✔ Polimorfismo ✔ Encapsulamento ✔ Métodos sobrescritos (@Override)
// 🧭 FASE 1 — ESCOPO (MVP)
// 🎯 Funcionalidades iniciais ✔ Criar clientes ✔ Criar contas bancária ✔ Tipos de conta:
// Conta Corrente Conta Poupança
// ✔ Operações: Depósito Saque Transferência entre contas Consulta de saldo
// ✔ Extrato simples no console
// 🧩 FASE 2 — MODELAGEM DAS CLASSES
// Cliente
class Cliente {
private String nome;
private String cpf;
public Cliente(String nome, String cpf) {
this.nome = nome;
this.cpf = cpf;
}
public String getNome() {
return nome;
}
}
// Conta (ABSTRATA)
abstract class Conta {
protected int numero;
protected Cliente cliente;
protected double saldo;
public Conta(int numero, Cliente cliente) {
this.numero = numero;
this.cliente = cliente;
this.saldo = 0.0;
}
public void depositar(double valor) {
if (valor > 0) {
saldo += valor;
}
}
public void sacar(double valor) {
if (valor > 0 && saldo >= valor) {
saldo -= valor;
}
}
public void transferir(double valor, Conta destino) {
if (saldo >= valor) {
this.sacar(valor);
destino.depositar(valor);
}
}
public abstract void imprimirExtrato();
}
// ContaCorrente
class ContaCorrente extends Conta {
public ContaCorrente(int numero, Cliente cliente) {
super(numero, cliente);
}
@Override
public void imprimirExtrato() {
System.out.println("=== Extrato Conta Corrente ===");
System.out.println("Cliente: " + cliente.getNome());
System.out.println("Saldo: R$ " + String.format("%.2f", saldo));
}
}
// ContaPoupanca
class ContaPoupanca extends Conta {
public ContaPoupanca(int numero, Cliente cliente) {
super(numero, cliente);
}
@Override
public void imprimirExtrato() {
System.out.println("=== Extrato Conta Poupança ===");
System.out.println("Cliente: " + cliente.getNome());
System.out.println("Saldo: R$ " + String.format("%.2f", saldo));
}
}
// ▶️ FASE 3 — MAIN (SIMULAÇÃO DO BANCO)
public class Main {
public static void main(String[] args) {
Cliente cliente1 = new Cliente("João Victor", "123.456.789-00");
Conta cc = new ContaCorrente(1, cliente1);
Conta cp = new ContaPoupanca(2, cliente1);
cc.depositar(1000);
cc.transferir(250, cp);
cc.imprimirExtrato();
cp.imprimirExtrato();
}
}
To embed this project on your website, copy the following code and paste it into your website's HTML: