Duvida sobre Interface

4 respostas
java
C

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

4 Respostas

Ana_Lina

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.

Ana_Lina

Basicamente é pq todos os métodos de uma interface sao abstratos e metodos abstratos nao podem ser staticos.

rmendes08

A partir do Java 8, foi introduzido o conceito de implementação default para Interfaces. Mas você continua não podendo instanciar uma interface.

Jonas_B_a_r_r_o_s

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

Criado 17 de maio de 2016
Ultima resposta 18 de mai. de 2016
Respostas 4
Participantes 4