**Eu só achava que eu tinha entendido o conceito de interface até esse exercicio, tem muitos ligar de desligar ai pq eu fui entendendo enquanto eu fazia o exercicio. Agora eu saquei que quando a interface, se implementa em mais de uma classe, ela passa a ter esse "Registro" da variavel e metodo que estamos utilizando, por isso quando eu tento dar um luz.desligar e logo em seguida um ar.desligar, ele me retorna que o ar já está desligado,doideira e incrivel ao mesmo tempo.
**
public class Main {
static void main(String[] args) {
Luz luz = new Luz();
ArCondicionado ar = new ArCondicionado();
luz.ligar();
luz.ligar();
luz.desligar();
luz.desligar();
ar.desligar();
ar.desligar();
ar.ligar();
ar.desligar();
luz.desligar();
}
}
public class Luz implements Controlavel {
private boolean ligado = false;
public boolean isLigado() {
return ligado;
}
@Override
public void ligar() {
if(ligado == false){
ligado = true;
System.out.println("Luz Ligada");
} else {
System.out.println("Luz já está ligada");
}
}
@Override
public void desligar() {
if(ligado == true){
ligado = false;
System.out.println("Luz Desligada");
} else {
System.out.println("Luz já está desligada");
}
}
}
public class ArCondicionado implements Controlavel{
private boolean ligado = false;
@Override
public void ligar() {
if(ligado == false){
ligado = true;
System.out.println("Ar condicionado ligado");
} else {
System.out.println("Ar condicionado ja está ligado");
}
}
@Override
public void desligar() {
if (ligado == true){
ligado = false;
System.out.println("Ar condicionado desligado");
} else {
System.out.println("Ar condicionado já desligado.");
}
}
}
public interface Controlavel {
void ligar();
void desligar();
}