Ir ao conteúdo
  • Cadastre-se
FabianoS

Polimorfismo poo.

Recommended Posts

Algum ser inteligente que começa "D" pra mim ajudar ?

 

Estou vendo o Polimorfismo do POO, e ta de boa por enquanto só não entendi uma parte do código.

 

a parte  {$Cheque->TipoCheque()} para que seria as Chaves "{}"? 

 

 

 

<?php 
  require_once("ChequeEspecial.class.php");

  // Criação dos cheques
  $Cheques[1] = new Cheque(380.00);
  $Cheques[2] = new ChequeEspecial(600.00);
  $Cheques[3] = new Cheque(230.00);

  // Percorrendo os Cheques
  foreach ( $Cheques as $key => $Cheque )
  {

      echo "Cheque $key ( {$Cheque->TipoCheque()} )
      com juros: R$ {$Cheque->CalcularJuros()} ";

  }

 ?>

 

 

ChequeEspecial.class.php

<?php 

class Cheque{
 
  public $Valor;
 
  /* Método Construtor
  * Recebe o parâmetro $Valor.
  */

  function __construct($Valor){
    $this->Valor = $Valor;
  }
 
  /* Método CalcularJuros()
  * Calcula os Juros, neste caso 20%
  */
 
  function CalcularJuros(){
    return $this->Valor * 1.20;
  }
 
  /* Método TipoCheque()
  * Retorna o tipo do Cheque
  */

  function TipoCheque(){
    return "Comum";
  }
}

 /* Perceba a herança acontecendo
 * definida pela palavra extends
 */
class ChequeEspecial extends Cheque{
 
  /* Método CalcularJuros() - Opa!! Mas esse método já não tinha sido
  * implementado na classe anterior? Sim, está aí o polimorfismo.
  * O juros do Cheque especial é 10%, não 20 como o anterior
  */
 
  function CalcularJuros(){
    //Perceba que herdamos a propriedade Valor da classe pai
    return $this->Valor * 1.10;
  }
 
  /* Método TipoCheque() - Também Sobrescrito
  * uso explicito do polimorfismo
  */
  function TipoCheque(){
    return "Especial";
  }
}

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@FabianoS

Pelo que vi nesse link abaixo, serve para não precisar ficar concatenando a variável no echo.

http://forum.imasters.com.br/topic/401409-resolvido-quando-usar-variavel-entre-chaves/

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 horas atrás, Math.Pi disse:

@FabianoS

Pelo que vi nesse link abaixo, serve para não precisar ficar concatenando a variável no echo.

http://forum.imasters.com.br/topic/401409-resolvido-quando-usar-variavel-entre-chaves/

 

É man só que não sabia que não da pra chamar um método de uma class dentro de um echo. pois quando tirava as chaves dava erro, e só funcionava sem elas, se concatenasse. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×