Boa tarde.
Gostaria de saber dos amigos, se é possível uma variável do tipo de uma interface, na chamada de um método executar dúas vezes em classes diferestes.
E queria saber se é uma boa prática criar variáveis do tipo de uma interface, e quando não usar.
obrigado
Dúvida variável do tipo de uma interface
6 Respostas
Você quer se referir a isto?
public interface InterfaceA {
public abstract void metodo1();
}
public class ClasseA implements InterfaceA {
public void metodo1(){
System.out.println("ClasseA");
}
}
public class ClasseB implements InterfaceA {
public void metodo1(){
System.out.println("ClasseB");
}
}
public class Main {
public static void main(String [] args) {
InterfaceA ia1 = new ClasseA();
InterfaceA ia2 = new ClasseB();
ia1.metodo1();
ia2.metodo1();
}
}
Com isso você estaria praticando o Polimorfismo.
A Saída seria:
ClasseA
ClasseB
xD~~
entendi…
muito obrigado
mas existe como eu fazer com que um método por segurança não seja executado duas vezes?
entendi…
muito obrigado
mas existe como eu fazer com que um método por segurança não seja executado duas vezes?
Declare uma variável do tipo lógico(boolean) para cada método iniciando a zero.
No final do método uma variável do tipo lógico e a faça receber 1 no final do método. Ai é só fazer um condicional para caso esta variável não seja 1. Se for um, ele não fará o método, se for 0, fará o método porque ele não foi executado. Fazendo isto, apesar de ser uma gambearra e de necessitar uma variável para cada método, estará seguro.
Exemplo:
public class exemplo{
public static void main( String[] args){
boolean verificarmetodo1=0, verificarmetodo2=0;
if(verificarmetodo1==0){
metodo1();
}
if(verificarmetodo2==0){
metodo2();
}
}
void metodo1{
System.out.print("Este PC é da biblioteca portanto, não tem o JDK instalado");
verificadormetodo1=1;
}
void metodo2{
System.out.print("por tanto não será surpresa se perceber erros de sintaxe");
verificadormetodo2=1;
}
}
Eu não tive como testar, mais entendeu??
Dá uma lida com carinho nesse tópico:
http://www.guj.com.br/posts/list/55387.java#290673
E nesse também (tem vários posts interessantes aqui): http://www.guj.com.br/posts/list/51866.java#273117
muito obrigado pela ajuda…
bom dia