Ver Mensaje Individual
  #9 (permalink)  
Antiguo 14/05/2010, 13:33
eSSeneX
 
Fecha de Ingreso: mayo-2008
Ubicación: Murcia, España
Mensajes: 313
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Duda sobre utilizacion de clases y métodos

Si bien mas o menos parece que has captado qué es una interfaz, decirte que los nombres de las interfaces suelen terminar en "able", ya que, por así decirlo, dota a una clase de una determinada funcionalidad, por ejemplo: Cloneable, Searchable, Dibujable...

Refriendo a tu caso, parece que lo que necesitas es una clase abstracta, que, por así decirlo, es una clase normal con la funcionalidad de una interfaz, es decir, puedes establecer métodos que deberán ser implementados por la clase que herede. Una de las ventajas de utilizar clases abstractas reside en la reutilización de código, puedes tener una funcionalidad común para todos los jugadores e implementarla solo una vez.

No se si me estoy explicando bien, pero esto se entiende a la perfección con un ejemplo:

Código PHP:
abstract class Persona() {

      var 
$nombre;
      var 
$apellido;
      var 
$direccion;

      function 
hablar() {
            
// Esta función es común para todos los tipos de personas
      
}

      abstract function 
trabajar(); // Todas las personas trabajan, pero cada una en un puesto distinto


Código PHP:
class Secretaria extends Persona {

      function 
trabajar() {
            
// código de trabajar para secretaria
      
}

Código PHP:
class Conserje extends Persona {

      function 
trabajar() {
            
// código de trabajar para conserje
      
}

Desde las clases hijas (Conserje y Secretaria), se puede acceder también a los métodos y atributos de la clase padre (Persona) del mismo modo que si se hubieran declarado en esa misma clase con $this->nombremetodo/propiedad.

Supongo que algo sabrás sobre el ámbito de las variables, pero por si acaso, te aclaro que:
  • public -> Puede ser accedido/a desde la propia clase, las que hereden de ella y desde fuera de la clase.
  • protected -> Puede ser accedido desde la propia clase y las que hereden de ella.
  • private -> Solo pude ser accedido desde la propia clase.

No se si me he explicado muy bien, pero busca información sobre lo que te he comentado ;)