Olá, estou estudando e interfaces e me deparei com esse códigos:
public interface Interface1 {
default void metodo(){
System.out.println(“Interface1”);
}
}
public interface Interface2 {
default void metodo(){
System.out.println("Interface2");
}
}
public class Classe implements Interface1, Interface2 {
public void metodo() {}
public void metodo1() {
Interface1.super.metodo();
}
public void metodo2() {
Interface2.super.metodo();
}
}
public class Principal {
public static void main(String[] args) {
Classe c = new Classe();
c.metodo();
c.metodo1();
c.metodo2();
}
}
Eu executei esse programa e vi que ele imprime: Interface 1 e Interface 2, minhas duvidas:
1 - Pode ter implementação de método na Interface? Só não pode implementar método estático?
2 -)Chamada a super não incoca o construtor? Interface tem construtor?
Obrigada
Intrface:Define um conjunto de metodos que são implementados por uma classe.
Nehum metodo é implementado pela interface.
N classes podem implementar n interfaces
palavra chave:implements e interface
atributos serão sempre public static final.
Espero ter ajudado.
Basicamente é pq todos os métodos de uma interface sao abstratos e metodos abstratos nao podem ser staticos.
A partir do Java 8, foi introduzido o conceito de implementação default para Interfaces. Mas você continua não podendo instanciar uma interface.
1 curtida
1 - Pode ter implementação de método na Interface? Só não pode implementar método estático?
Você pode implementar metodos, mas geralmente eles não tem corpo ex, void gerar();
caso queira colocar corpo voce usa o default, ou seja, um metodo padrão como qualquer outro. O static não faria sentido você colocar, primeiro você não instancia Interface e nem usa referencia de classe ex, Interface.metodo(); ja que implementando interfaces você obrigatoriamente deve implementar os metodos dela em sua classe.
2 -)Chamada a super não incoca o construtor? Interface tem construtor?
Interface não tem construtor, porque tudo é construído na classe que a implementa, Construido quero dizer usados, ou iniciados