Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/09/2010, 23:59
Enfermin
 
Fecha de Ingreso: septiembre-2009
Mensajes: 54
Antigüedad: 15 años, 3 meses
Puntos: 0
Duda sobre herencia en clase abstracta

holas estuve destripando un cms y me tope con una clase abstracta y me surgio una duda, busque en google y encontre un ejemplo similar al que genero mi duda y es como este ejemplo

Aqui hay una clase abstracta y lo demas se entiende (la funcionalidad de los metodos es lo que menos importa)

Código PHP:
abstract class Vehiculo
{
  public 
$potencia;
  public 
$peso;

  function 
__construct($potencia,$peso)
  {
    
$this->potencia $potencia;
    
$this->peso $peso;

    return 
true;

  }

  function 
relacionPesoPotencia()
  {
    if (
$this->potencia>0)
    {
      return (
$this->peso/$this->potencia);
    }

    return -
1//aqui una duda extra, por que "-1" y no "0" ??.. no es lo mismo?
  
}

  abstract function 
aceleracionAproximada();


Y aqui otra clase que hereda de la clase abstracta

Código PHP:
class Moto extends Vehiculo
{

  function 
__construct($potencia,$peso)
  {
    
$this->potencia $potencia;
    
$this->peso $peso;

    return 
true;
  }

  function 
aceleracionAproximada()
  {
     
$coeficienteTransmision 3.0;

     
$t $this->peso 771.73 / (2.0 $this->potencia 735);
     
$t $t $coeficienteTransmision;
     return 
$t;
  }

Bueno como dije arriba la funcionalidad de los metodos es lo de menos, pero mi duda aqui es:
¿Porque la clase Moto hace un "$this->potencia" y "$this->peso" si nunca inicio ese atributo??.. osea nunca hizo un

public $potencia;
public $peso;

Entonces pense , debe ser un atributo que heredo de la clase abstracta "Vehiculo" .. entonces si es asi por que no usa

parent::$potencia
parent::$peso

esa duda me tiene confundido.. alguien podria explicarme?? esto es lo que veo en las clases de un cms que estoy analizando..
y aprovechando la oportunidad.. siempre veo que hacen un return -1 no seria lo mismo y mejor hacer return 0 ??

PD: ese ejemplo lo saque de aqui http://www.epsilon-eridani.com/cubic/ap/cubic.php/pag/PHP5---Clases-abstractas-72.html

Última edición por Enfermin; 26/09/2010 a las 00:02 Razón: :P