Pessoal, boa tarde.
Sou novo em java e estou com dúvidas na parte do uso de interface.
Veja se a seguinte situação é possível:
1 - Classe animal, tendo 2 subclasses, canino e felino (página 188 do livro use a cabeça java)
public class animal (){…}
public class canine () extends animal {…}
public class feline () extends animal {…}
DUVIDA: A classe Animal pode implementar alguma interface? Se sim o que acontece com as subclasses? Não consegui montar ambiente de teste para isso!
public class animal () implements INTERFACE A{…}
Desde já Obrigado
Se a classe pai implementa a interface, as subclasses também cumprem com o contrato.
Vamos supor que a classe Animal tenha que implementar a interface Instinto
public interface Instinto{
public void sobreviver();
}
A classe Animal, sendo concreta e implementando a interface Instinto, precisa, obrigatoriamente, implementar cada um dos métodos existentes nesta interfac.
public class Animal implements Instinto{
@Override
public void sobreviver(){
//TODO implemente como cada animal sobrevive
System.out.println("É preciso definir qual animal, para saber como ele sobrevive");
}
//demais métodos inerentes a um animal
}
As subclasses poderão optar por sobrescrever ou não os métodos da superclasse, salvo se, esta for abstract e tiver métodos, próprios ou de uma interface que está sendo implementada por ela, que não foram implementados.
Neste caso, poderíamos apenas ter
public class Felino extends Animal{}
//e
public class Canino extends Animal{}
Assim como, pode-se fazer
public class Felino extends Animal{
@Override
public void sobreviver(){
setAlerta(true);
while(comFome){
comFome = cacar();
}
if(noCio){
Felino parceiroA = procurarParceiroA();
reproduzirSe(parceiroA);
}
}
}
Fiquei curioso agora
nesse caso que vc passou
para que vc usaria uma interface na superclass Animal?
[quote=tmvolpato]Fiquei curioso agora
nesse caso que vc passou
para que vc usaria uma interface na superclass Animal?
[/quote]
Entendo que ele usou este exemplo apenas como forma de demonstrar a dúvida, dificilmente haveria algo assim.
[quote=drsmachado][quote=tmvolpato]Fiquei curioso agora
nesse caso que vc passou
para que vc usaria uma interface na superclass Animal?
[/quote]
Entendo que ele usou este exemplo apenas como forma de demonstrar a dúvida, dificilmente haveria algo assim.[/quote]
Achei estranho
flw
[quote=tmvolpato][quote=drsmachado][quote=tmvolpato]Fiquei curioso agora
nesse caso que vc passou
para que vc usaria uma interface na superclass Animal?
[/quote]
Entendo que ele usou este exemplo apenas como forma de demonstrar a dúvida, dificilmente haveria algo assim.[/quote]
Achei estranho
flw [/quote]
Com certeza é estranho, afinal, podemos interpretar que tais classes, Animal, Felino e Canino são POJOs…
Mas eu entendo que ele está tentando assimilar estes conceitos, por isso, ainda não consegue entender que interfaces são usadas em outros contextos.
[quote=drsmachado][quote=tmvolpato]Fiquei curioso agora
nesse caso que vc passou
para que vc usaria uma interface na superclass Animal?
[/quote]
Entendo que ele usou este exemplo apenas como forma de demonstrar a dúvida, dificilmente haveria algo assim.[/quote]
não dificilmente. Na prática é comum fazer a super classe implement Serializable ou Iterable, por exemplo.
[quote=leosgoncalves]Pessoal, boa tarde.
Sou novo em java e estou com dúvidas na parte do uso de interface.
Veja se a seguinte situação é possível:
1 - Classe animal, tendo 2 subclasses, canino e felino (página 188 do livro use a cabeça java)
public class animal (){…}
public class canine () extends animal {…}
public class feline () extends animal {…}
DUVIDA: A classe Animal pode implementar alguma interface? Se sim o que acontece com as subclasses? Não consegui montar ambiente de teste para isso!
public class animal () implements INTERFACE A{…}
Desde já Obrigado
[/quote]
Pode sim, lembrando que a classe animal tem que implementar os métodos, e as classes filhas, recebem esses métodos ( se n for private ).