Ver Mensaje Individual
  #8 (permalink)  
Antiguo 07/02/2009, 19:34
neftons
 
Fecha de Ingreso: junio-2008
Ubicación: Bogotá D.C. / Colombia
Mensajes: 4
Antigüedad: 15 años, 10 meses
Puntos: 0
Mensaje Respuesta: Interface, implements

Saludos, la verdad es que con este post he comenzado a comprender muchas cosas que creeía saber pero que ahora veo que no.

Siempre he sabido que la interfaces son fundamentales en la programación para llegar al máximo nivel de abstracción y tener una especie de plantilla para que las clases que la implementan sepan que deben hacer por default, pero pues veo que esto tiene una importancia mayor y la aplicación en el filtrado de objetos que has hecho me parece genial, así que decidí hacer un código en java para probar cada cosa que decías ya que desde mi punto de vista es un lenguaje que exige programación orientada a objetos.

Cita:
Iniciado por enriqueplace Ver Mensaje
Estimado Acoevil:

Bien, aquí es donde se necesitan las interfaces. Creas una interfaz Imprimible que tiene solo la firma del método getContendioImprimible y defines que la Impresora solo acepta objetos "imprimibles".

Lo que sucede es lo siguiente:
  1. Si modificas la clase para que valide la interfaz, cualquier objeto que quiera pasar por el método este le dirá que tiene que cumplir la interfaz Imprimible
  2. Cuando a la clase le agregas "implements Imprimible", automáticamente el sistema que dirá que te falta la implementación del método getContenidoImprimible
  3. Una vez que lo implementes, recién ahí podrás acceder al método "imprimir".
A eso se le llama "contrato de implementación", necesitas "firmar" un contrato para poder obtener un "servicio", lo cual esto asegura una serie de condiciones para poder usarlo.
Código PHP:

public interface Imprimible {
    
    public 
void getContenidoImprimible();

}

public class 
Hoja implements Imprimible {

    public 
void getContenidoImprimible(){
        
System.out.println("Soy una hoja");
    }
    
}

public class 
Carro {

}


public class 
Impresora {
    
    public 
void imprimir(Imprimible objetoImprimible){
        
objetoImprimible.getContenidoImprimible();
    }
    
    public static 
void main(String args[]){
        
Impresora impresora = new Impresora();
        
Hoja hoja = new Hoja();
        
Carro carro = new Carro();
        
impresora.imprimir(hoja);
        
impresora.imprimir(carro); // Produce error
    
}


]

Última edición por neftons; 07/02/2009 a las 19:40