Como Somar valores da interface?

package apporcamento;

import javax.swing.JOptionPane;

public class AppOrcamento {

public static void main(String[] args) {
    String opt = "nao";
    Cliente c = new Cliente();

    EmpresaPrestadora ep = new EmpresaPrestadora();

    StringBuilder msg = new StringBuilder();

    ep.setNomeEmpresa(LerString("Informe o nome da prestadora de serviços:  "));
    ep.setCnpj(LerString("Informe o cnpj da prestadora:  "));

    c.setNomeCliente(LerString("Informe o nome do cliente:  "));
    c.setCPF(LerString("Informe o CPF do cliente:  "));

    Orcamento orc = new Orcamento(c, ep);

    while (!opt.equals("4")) {
        msg.delete(0, msg.length());
        msg.append("Sistema de Controle de Orçamento\n\n");
        msg.append("Bem vindo - ").append(orc.getClienteOrcamento().getNomeCliente()).append("\n\n");
        msg.append("Prestadora - ").append(orc.getPrestadora().getNomeEmpresa()).append("\n\n");
        msg.append("Digite a Opção Desejada:\n\n");
        msg.append("1 - Adicionar Item no Orçamento\n\n");
        msg.append("2 - Imprimir Informações do Orçamento\n\n");
        msg.append("3 - para Remover um Orçamento\n\n");
        msg.append("4 - para sair.\n\n");

        opt = LerString(msg.toString()).toUpperCase();

        switch (opt) {
            case "1": {
                ItemOrcamento i = new ItemOrcamento();
                i.setIdServico(LerInt("Informe o ID do servico:  "));
                i.setNomeServico(LerString("Informe o nome do serviço prestado: "));
                i.setValorUnitario(LerDouble("Informe o valor unitário do serviço: "));
                i.setQuantidade(LerInt("Informe a quantidade vendida: "));

                orc.AdicionarItemAoOrcamento(i);
            }
            break;
            case "2":
                ImprimirOrcamento(orc);
                break;
            case "3":
                removerOrcamento(orc);
            case "4":
                JOptionPane.showMessageDialog(null, "Obrigado por utilizar o sistema.", "Sistema de Orçamento", JOptionPane.QUESTION_MESSAGE);
                break;
            default:
                JOptionPane.showMessageDialog(null, "Opção inválida.");
                break;
        }
    }
}**texto em negrito**
static void ImprimirOrcamento(Orcamento O) {
    StringBuilder str = new StringBuilder();

    str.append("Orcamento número:  ").append(O.getNumeroOrcamento()).append("\n\n");
    str.append("Itens do orçamento\n\n");
    str.append("Cliente:  ").append(O.getClienteOrcamento().getNomeCliente()).append("\n\n");
    str.append("*********************************\n\n");
    for (int i = 0; i < O.getItensOrcamento().size(); i++) {
        str.append("Id produto: ").append(O.getItensOrcamento().get(i).getIdServico())
                .append("  Nome:  ").append(O.getItensOrcamento().get(i).getNomeServico())
                .append("  Valor unitário:  ").append(O.getItensOrcamento().get(i).getValorUnitario())
                .append("  Quantidade:  ").append(O.getItensOrcamento().get(i).getQuantidade())
                .append("  Valor total:  ").append(O.getItensOrcamento().get(i).getValorUnitario() * O.getItensOrcamento().get(i).getQuantidade()).append("\n\n");
    }

    str.append("Total de itens:  ").append(O.getItensOrcamento().size()).append("\n\n ");
    for (int j = 0; j < O.getItensOrcamento().size(); j++) {
        str.append("  Valor final:  ").append(O.getItensOrcamento().get(j).getValorUnitario()).append("\n\n");
    }

    JOptionPane.showMessageDialog(null, str, "Sistema de Orçamento", JOptionPane.QUESTION_MESSAGE);
}

Ainda estou aprendendo a utilizar interfaces, neste tópico gostaria de saber como somar todos os valores inseridos em cada item da interface(ValorTotal) e depois imprimi-los na tela. Fiz este pequeno código, porém não sei como prosseguir.
for (int j = 0; j < O.getItensOrcamento().size(); j++) {
** str.append(" Valor final: “).append(O.getItensOrcamento().get(j).getValorUnitario()).append(”\n\n");**
** }**

A natureza da interface não é a realização de uma operação mas servir de referência para a realização de algo, tanto é que você não consegue instanciar ela, você deve implementar, logo, quem realiza a operação não é a interface é a classe que a implementa.
Assim, seu problema é com a classe e não com a interface.
Exemplo “grosseiro”: se o animal é um ser (concreto), o sentimento é a interface (100% abstrata) e cada animal implementa seus sentimentos de maneiras diferentes, assim as operações realizadas não são necessariamente idênticas.

Dê uma olhada em: https://www.youtube.com/watch?v=MVphKZUTtaE

Agora para a sua necessidade:

float total = 0;//criamos uma variável para somar os valores dos produtos
        for (int j = 0; j < O.getItensOrcamento().size(); j++) {
            total += O.getItensOrcamento().get(j).getValorUnitario();//somando todos os valores
        }
        str.append("Valor final: ").append("R$ "+total);//fora do for, já teremos o total
1 curtida