Ol� Richard,
 
As classes abstratas s�o simplesmente para heran�a. Com elas voc� define m�todos, com ou sem implementa��o, que v�o ser comum a um grupo de clases. Os m�todos que n�o t�m implementa��o s�o declarados abstract e uma vez uma classe tendo um m�todo abstrato, toda a classe tem que ser abstrata. Exemplo;
 
public abstract class JavaList { 
     pubilc void getUserCount(){            
            System.out.println("Exitem n usu�rios conectados.");
     }
    
    /*
     Como n�o tem implementa��o, esse m�todo tem que ser abstract, o que for�a a
     declara��o abstract tamb�m no nome da classe JavaList
    */
     public abstract String getUserName();                                                 
 
}
 
Em uma sub-classe:
 
public class UsuarioJavaList extends JavaList {
     public UsuarioJavaList(){           
           getUserCount();
     }
 
     public String getUserName(){         
           /*
           Esse m�todo � obrigado ser implementado pois foi declarado abstract na super-classe JavaList, logo
           as sub-classes s�o obrigadas a dar uma implementa��o a ele ou ent�o passam a ser abstract tamb�m
           e t�m que ter abstract na declara��o da classe.
           Note que o m�todo est� implementado retornando vazio.
           */
           return "";
     }
 
     public static void main(String args[]){ 
           UsuarioJavaList usrJList = new UsuarioJavaList(); 
     }
}
 
J� as interfaces s�o classes que cont�m m�todos que devem ser implementados por todas as classes que usam essa determinada interface. Ao contr�rio das classes abstratas, as interfaces n�o t�m nenhum m�todo com implementa��o, eles s�o apenas declarados. Exemplo:
 
public interface Pessoa {
      public void andar();
      public String getNome();
}
 
E usando ela:
 
public class Richard implements Pessoa {
     /*
      Como a classe Richard usa a interface Pessoa, voc� tem que implementar todos os m�todos da interface.
     */
     public void andar(){
     }
     public String getNome(){
          return "Richard Valdivia";
     }
}
 
Diferente das classes abstratas, que s�o base para heran�a logo s� pode ser usada uma por sub-classe (java n�o permite heran�a m�ltipla), uma classe pode usar mais de uma interface. Por exemplo;
public class MP3Player extends JFrame implements Player, WindowListener, ActionListener {
}
 
Em resumo:
1)Classes abstratas s�o base para heran�a e podem ou n�o ter m�todos implementados, mas uma vez um m�todo sendo abstract, ou seja, n�o tendo implementa��o, toda a classe � abstract;
2)Interfaces s�o classes para determinar comportamentos de classes, cont�m m�todos que devem ser implementados por toda classe que usa a interface.
 
Exitem um tipo de classe especial denomiados Adaptadores que facilitam na hora de utilizar interfaces. � comum voc� ter que usar uma inteface mas voc� s� precisa de um m�todo dela, nestes casos voc� usa um adaptador. Por exmplo:
WindowListener wl = new WindowAdpater(){
    public void windowClosing(WindowEvent e){
         System.exit(0);  
    }
}
 
Em uma classe do tipo Adaptador, voc� tem os m�todos da interface que ela implementa j� implementados com vazio e sobre-escreve somente o m�todo que te interessa poupando tempo de desenvolvimento.
 
Espero que tenha entendido.
 
Um abra�o,
 
Lincolm
----- Original Message -----
Sent: Monday, May 20, 2002 8:30 PM
Subject: [java-list] Interfaces e classes abstratas

Quer ter seu pr�prio endere�o na Internet?
Garanta j� o seu e ainda ganhe cinco e-mails personalizados.
Dom�niosBOL - http://dominios.bol.com.br







Caros amigos,

Tenho ainda grande dificuldades em entender alguns
conceitos de POO. Para que existem as interfaces e
classes abstratas? Esses conceitos eu n�o conhe�o
do C.

[]s



_________________________________________________________________
O MSN Photos � o modo mais f�cil de compartilhar e imprimir suas fotos:
http://photos.msn.com/support/worldwide.aspx


------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

Responder a