<?php
abstract class Vehiculo 
    {
        // Declaración de los atributos 
		private $color;
		private $peso;
		const SALTO_DE_LINEA ='<br />';
		static protected $nombre_	_color=0;
	
		//constructor
		public function __construct($color, $peso) // Constructor pide 2 argumentos.
		{
            $this->color = $color; // Inicialización del color.
            $this->peso = $peso; // Inicialización del peso.
		}
		
		//accesorios
		public function getColor()
		{
            return $this->color; //devuelve el color 
		}
		public function setColor($color)
		{
			$this->color = $color; //escribe en el atributo color
			self::$nombre_cambio_color = self::$nombre_cambio_color + 1;
		}
		
		public function getPeso()
		{
            return $this->peso; //devuelve el peso 
		}
		public function setPeso($peso)
		{
			if ($peso > 2100) {
				$this->peso = 2100; //escribe en el atributo peso
			}
			else {
				$this->peso = $peso; //escribe en el atributo peso
			}
		}
	
		//métodos públicos				
		public function rouler()
		{
			echo "El vehículo circula.<br />";
		}
		
		public static function mostrar_atributo($objet) {
			if(method_exists($objet,'getColor')) {
				echo "El color es:";
                        echo $objet->getColor().self::SALTO_DE_LINEA;
			}
			if(method_exists($objet,'getPeso')) {
				echo "El peso es:";
                        echo $objet->getPeso().self::SALTO_DE_LINEA;
			}
			if(method_exists($objet,'getCilindrada')) {
				echo "La cilindrada es:";
                        echo $objet->getCilindrada().self::SALTO_DE_LINEA;
			}
			if(method_exists($objet,'getNumeroPuerta')) {
				echo "El número de puertas es:";
                        echo $objet->getNumeroPuerta().self::SALTO_DE_LINEA;
			}	
			if(method_exists($objet,'getLongitud')) {
				echo "La longitud es:";
                        echo $objet->getLongitud().self::SALTO_DE_LINEA;
			}
			if(method_exists($objet,'getNumeroCadenaNieve')) {
				echo "El número de cadenas de nieve es:";
                      echo $objet->getNumeroCadenaNieve().self::SALTO_DE_LINEA;
			}
			echo "El color se ha cambiado";
                echo self::$nombre_cambio_color." veces.";	
		}
          
        abstract public function añadir_persona($peso_persona);
		
}

?>
