Exemple #1
0
        public static void TotalDeTributoDeImportados(Produto [] produtos, TotalizadorDeTributoProdutoImportado TTProdutoImportado)
        {
            foreach (Produto produto in produtos)
            {
                if (!(produto is ProdutoNacional)) /*verificando se o objeto não é um ProdutoNacional */
                {                                  /*caso não seja um produto nacional é realizado um casting da variavel produto*/
                    ITributoDeProdutoImportado produtoImportado = produto as ITributoDeProdutoImportado;
                    TTProdutoImportado.AcumuladorDeTributoProdutoImportado(produtoImportado);

                    /* No nosso caso apenas a  classe ProdutoNacional  não implementa a interface ITributoDeProdutoImportado, portanto os demais objetos
                     * são ITributoDeProdutoImportado por isso é feito o casting acima.*/
                }
            }
        }
Exemple #2
0
        /* Qualquer classe que implemente a interface ITributoDeProdutoImportado é tributavel de taxa de importação.
         * A variavel produto do tipo ITributoDeProdutoImportado pode fazer referencia a um objeto de uma classe que implementou a interface ITributoDeProdutoImportado.
         * /*Desta forma, podemos dizer que a classe TotalizadorDeTributoProdutoImportado recebe um ITributoDeProdutoImportado
         * qualquer. O polimorfismo funciona com interface.
         *
         * A interfcace é a classe pai e as classes que a implementaram são as filhas*/

        public void AcumuladorDeTributoProdutoImportado(ITributoDeProdutoImportado produto)
        {
            AcumuladorTributoProdImportado += produto.CalcularTributoDeImportacao();
        }