Fala Jose ...
Vou tentar explicar ...
Um interface serve para vc nao criar dependencia de uma implementacao apenas da interface ...
O q isso quer realmente dizer, humm ... por exemplo ...
 
public interface CalculaTaxa {
  public double calcula(double) ;
}
 
Vc criou uma interface, o q vc asegurou para o programa q vai usar ??? Q ele tem um objeto para trabalhar, q passando um double ele retorna outro, mas nao disse o q o objeto tera q fazer com esse double ...
 
Ai vc cria duas implementacoes ...
 
public class CalculaTaxaImpl1 implements CalculaTaxa {
  public double calcula(double) {
     return double + 1 ;
   }
}
 
public class CalculaTaxaImpl2 implements CalculaTaxa {
  public double calcula(double) {
    return double + 2 ;
  }
}
 
O programa clint nao sabera qual implementacao ele estara usando, pq ele soh se preocupa com a interface ...
 
Entao para ficar vc vc pode criar um factory ...
 
public class CalculaTaxaFactory {
  private static CalculaTaxaFactory instance ;
 
  // singleton nao tem necessidade de expor seu construtor ..
  private CalculaTaxaFactory() { 
  }
 
  public static synchronized CalculaTaxaFactory getInstance() {
     if (this.instance == null) {
       instance = new CalculaTaxaFactory() ;
     }
     return instance ;
  }
 
  public CalculaTaxa createCalculaTaxa() {
    try {
      return (CalculaTaxa) Class.forName(System.getProperty("calculaTaxaClass")).newInstance() ;
    } catch (Exception e) { }
  } 
}
 
public class Cliente {
  ///
  public static void main(String[] argvs) {
    CalculaTaxa ct = CalculaTaxaFactory.getInstance().createCalculaTaxa() ;
    System.out.println("resultado:" + ct.calcula(10.0)) ;
  }
}
 
Eh soh setar a implementacao no property q atravez de reflexao o factory cria a instancia da implementacao ... Acho q esse codigo deve funcionar se nao comi bola na digitacao ...
 
Agora classe abstrata eh qdo todas as implementacoes vai precisar de alguns metodos prontos ... Geralmente utilizadas em frameworks, q a implementacao tem q ter alguns comportamentos mais especificos ...
 
...
 
[]s
-----Original Message-----
From: Jose Carlos [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, September 03, 2002 11:27 AM
To: [EMAIL PROTECTED]
Subject: [java-list] Interfaces e Abstract Class

Olá Javaneses,
 
        Tenho uma curiosidade básica: qual a finalidade de interfaces e Abstract classes? De que forma eu as utilizo e em que situações são mais adequadas para sua utilização?
 
[]'s
Sparc

Responder a