Olá, quer dizer então que métodos e classes abstratas só servem como moldes?
Oi,
“Na hierarquia de classes, quanto mais uma classe for genérica, mais ela é abstrata. Ou seja, a classe chega a ser tão genérica que não precisa de uma instancia dela na aplicação.”
Então, essa classe acaba servindo de modelo para suas subclasses.
Tchauzin!
Na verdade não um metodo abstrato ele DEVE ser implementado ou seja sobrescrito.
Voce pode ter metodos abstratos em 2 tipos de lugares em Java
1- Em uma Classe Abstrata
Uma classe que tenha pelo menos um metodo abstrato DEVE ser abstrata mais uma classe abstrata pode ter metodos normais… ou seja voce pode forçar quem EXTENDER essa classe a implementar alguma funcionalidades usando metodos abstratos e outras voce pode deixar implementadas com os metodos normais.
2-Em uma Interface
Uma interface so contem metodos abstratos ela Não pode ter metodos normais e que IMPLEMENTAR essa interface deve fornecer funcionalidade para todos os metodos que são abstratos
esse assunto é meio complexo se voce estiver com duvidas compre ou baixe o livro “Use a Cabeça java 2” tenha paciencia de ler que voce vai entender melhor.
Obrigado pelas respostas! Valeu!
[quote=Diabo Loiro]Na verdade não um metodo abstrato ele DEVE ser implementado ou seja sobrescrito.
Voce pode ter metodos abstratos em 2 tipos de lugares em Java
1- Em uma Classe Abstrata
Uma classe que tenha pelo menos um metodo abstrato DEVE ser abstrata mais uma classe abstrata pode ter metodos normais… ou seja voce pode forçar quem EXTENDER essa classe a implementar alguma funcionalidades usando metodos abstratos e outras voce pode deixar implementadas com os metodos normais.
2-Em uma Interface
Uma interface so contem metodos abstratos ela Não pode ter metodos normais e que IMPLEMENTAR essa interface deve fornecer funcionalidade para todos os metodos que são abstratos
esse assunto é meio complexo se voce estiver com duvidas compre ou baixe o livro “Use a Cabeça java 2” tenha paciencia de ler que voce vai entender melhor.[/quote]
Oi,
Agora que você tocou no assunto, vou apresentar um exemplo classe Abstrata e Interface.
Classe Abstrata:
A classe abstrata pode ter métodos implementados, porém deve ter ao menos um método
abstrato, ou seja, um método que uma subclasse concreta deve implementar.
Classes abstratas não podem ser instanciadas.
Imagine um sistema de envio de mensagens do tipo texto e fax.
Não faria sentido ter uma instância de Mensagem, mas sim uma de MensagemTexto ou MensagemFax.
public abstract class Mensagem {
private String from;
private String msg;
public Mensagem( String remetente ) {
from = remetente;
}
public void corpoMensagem(String msg) {
this.msg = msg;
}
public abstract void enviar();
}
public class MensagemTexto extends Mensagem {
public MensagemTexto( String remetente ) {
super( remetente );
}
public void enviar() {
//envia uma mensagem de texto
}
public class MensagemFax extends Mensagem {
public MensagemFax( String remetente ) {
super( remetente );
}
public void enviar() {
//envia uma mensagem de fax
}
public class ServicoMensagens {
public static void main(String[] args) {
Mensagem m = new MensagemTexto(?Lina?);
m.corpoMensagem(?Mensagem de teste TXT?);
m.enviar();
m = new MensagemFax(?Lina?);
m.corpoMensagem(?Mensagem de teste FAX?);
m.enviar();
}
}
}
}
Tchauzin!
Oi,
Interface:
As interfaces atuam como um contrato para as classes que a implementam.
Nas interfaces você define os métodos que deverão ser providos pela classes.
As classes que implementam esta interfaces, deve oferecer uma implementação para
cada método definido na sua interface.
As classes podem implementar mais de uma interface.
Pode-se usar interfaces para uso de funções de callback.
public interface Figura {
public double calcularArea();
}
public class Circulo implements Figura {
public double calcularArea() {
//faz o cáculo da área do círculo
}
public class Quadrado implements Figura {
public double calcularArea() {
//faz cálculo da área do quadrado
}
}
}
Cada classe implementam o método à sua maneira. Mas o mais importante é que eles ofereçam uma implementação para aquele método da interface.
Interfaces são adequadas para se definir formas (interfaces) de acesso a sub-sistemas, escondendo detalhes da sua implementação.
Vejamos como utilizar uma interface:
Figura fig = new Circulo(10);
double area = fig.calcularArea();
fig = new Quadrado(8);
area = fig.calcularArea();
Tchauzin!
Oi,
Tutorial que utilizo para dar aulas.
Conseguido da empresa Softech Network Informática.
Tchauzin!
Oi, linda, ops que dizer LINA…
Neste caso nas INTERFACES não seria obrigatório que esses moldes fossem abstratos?
[quote=xwillianss]Oi, linda, ops que dizer LINA…
Neste caso nas INTERFACES não seria obrigatório que esses moldes fossem abstratos?[/quote]
Oi,
Exatamente…
Estava certa quando eu disse que iria confundir rsrs
public double calcularArea();
// Pode ser considerado abstrato por ele não ter um implementação entre as chaves {}.
// Porém, a definição de método abstrato para Java é public abstract, ou seja, ser declarado como abstract.
Logo, uma interface não é obrigatório ter moldes abstratos.
Tchauzin!
[quote=lina][quote=xwillianss]Oi, linda, ops que dizer LINA…
Neste caso nas INTERFACES não seria obrigatório que esses moldes fossem abstratos?[/quote]
Oi,
Exatamente…
Estava certa quando eu disse que iria confundir rsrs
public double calcularArea();
// Pode ser considerado abstrato por ele não ter um implementação entre as chaves {}.
// Porém, a definição de método abstrato para Java é public abstract, ou seja, ser declarado como abstract.
Logo, uma interface não é obrigatório ter moldes abstratos.
Tchauzin![/quote]
Este assunto é tão complexo que eu até confundi seu nome. kkkkkkkkkkkk
Chamei você de LINDA ao invés de LINA.
Obrigado!!!
Interfaces não precisa escrever abstract pois todos os métodos delas são obrigatoriamente public abstract sendo desnecessario descriminar isso.
Oi,
Perfeito Jedi
Tchauzin!
Valeu pelas explicações!
Abração