Skip to content

Instantly share code, notes, and snippets.

@ramon-src
Last active November 21, 2019 01:04
Show Gist options
  • Save ramon-src/eac6bf031d1d03efe3b43ffd1a4752b9 to your computer and use it in GitHub Desktop.
Save ramon-src/eac6bf031d1d03efe3b43ffd1a4752b9 to your computer and use it in GitHub Desktop.
class Pagamento {
public void executar(TipoDePagamento tipo) {
tipo.debita();
}
}
/*
* Logo, podemos passar por parâmetro qualquer classe que extenda TipoDePagamento,
* para o método executar da classe Pagamento.
*/
var pagamento = new Pagamento()
var cartaoDebito = new CartaoDebito() // Cartão Débito extende TipoDePagamento
pagamento.executar(cartaoDebito) // print: debita sem taxa
/*
* método executar, executa o método debita da classe concreta que extende a classe abstrata TipoDePagamento,
* então fará um print do texto: debita sem taxa
*/
var cartaoCredito = new CartaoCredito() // Cartão Crédito extende TipoDePagamento
pagamento.executar(cartaoCredito) // print: debita com taxa
/*
* método executar, executa o método debita da classe concreta que extende a classe abstrata TipoDePagamento,
* então fará um print do texto: debita com taxa
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment