Programa cofrinho

Tenho que desenvolver um programa em java usando o conceito de polimorfismo. Estou com dificuldade e acontece que deixei para última hora.

A lógica é: Eu adiciono moedas de dolar, euro, real e o programa adiciona, remove, lista, cacula e encerra Classe TelaInicial com os menus eu consegui fazer.

import java.util.Scanner;
public class TelaInicio {
    public static void main(String[] args) {
        Scanner teclado = new Scanner(System.in);
        int opcao;
        System.out.println("COFRINHO:");
        System.out.println("1-Adicionar Moeda");
        System.out.println("2-Remover Moeda");
        System.out.println("3-Listar Moedas");
        System.out.println("4-Calcular total convertido para real");
        System.out.println("0-Encerrar");
        opcao = teclado.nextInt();
        int tipoMoeda;
        double moeda;
        while(opcao!=0) {
            switch(opcao) {
                case 1:
                    tipoMoeda=0;
                    while(tipoMoeda > 3 || tipoMoeda <= 0) {
                        System.out.println("Escolha a moeda");
                        System.out.println("1-Dolar");
                        System.out.println("2-Euro");
                        System.out.println("3-Real");
                        tipoMoeda = teclado.nextInt();
                    }
                    System.out.println("Digite o valor?");
                    moeda = teclado.nextInt();
                    break;
                case 2:
                    tipoMoeda=0;
                    while(tipoMoeda > 3 || tipoMoeda <= 0) {
                        System.out.println("Escolha a moeda para remover");
                        System.out.println("1-Dolar");
                        System.out.println("2-Euro");
                        System.out.println("3-Real");
                        tipoMoeda = teclado.nextInt();
                    }
                    System.out.println("Digite o valor?");
                    moeda = teclado.nextInt();
                    break;
                case 3:
                    System.out.println("Listar moedas adicionadas");
                    break;
                case 4:
                    System.out.println("Converter valores");
                    break;
                default:
                    System.out.println("Opcao invalida!");
            }
            System.out.println("COFRINHO:");
            System.out.println("1-Adicionar Moeda");
            System.out.println("2-Remover Moeda");
            System.out.println("3-Listar Moedas");
            System.out.println("4-Calcular total convertido para real");
            System.out.println("0-Encerrar");
            opcao = teclado.nextInt();
        }
    }
}

//Classe Cofrinho
public class Cofrinho {
    private int listaMoedas;
    public void adicionarMoeda(){
    }
    public void removerMoeda(){
    }
    public void listagemMoeda(){
    }
    public void totalConvertido(){
    }
}

//Classe Moedas
public abstract class Moeda {
    double valor;
    public Moeda(double valor) {
        this.valor = valor;
    }
    public abstract void info();
    public abstract double converter();
}


//Classe Dolar
public class Dolar extends Moeda {
    double dolar;
    public Dolar(double valor, double dolar) {
        super(valor);
        this.dolar = dolar;
    }
    @Override
    public void info(){
        System.out.println("Dolar: " + dolar);
    }
    @Override
    public double converter(){
        dolar = dolar * 5.19;
        return dolar;
    }
}

//Classe Euro
public class Euro extends Moeda {
    double euro;
    public Euro(double valor, double euro) {
        super(valor);
        this.euro = euro;
    }
    @Override
    public void info(){
        System.out.println("Euro: " + euro);
    }
    @Override
    public double converter(){
        euro = euro * 6.20;
        return euro;
    }
}

Classe real
public class Real extends Moeda {
    double real;
    public Real(double valor, double real) {
        super(valor);
        this.real = real;
    }
    @Override
    public void info(){
        System.out.println("Real: " + real);
    }
    @Override
    public double converter(){
        real = real * 6.2;
        return real;
    }
}
1 curtida