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
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?
[quote=nykel]entendi…
muito obrigado
mas existe como eu fazer com que um método por segurança não seja executado duas vezes?
[/quote]
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??
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