Interface de 3 notas de conhecimento básico de Java

interface

Visão geral

Uma interface é uma especificação comum de várias classes.

Jikou é um tipo de dado de referência e o conteúdo mais importante é o método abstrato.

Como definir o formato de uma interface:

nome da interface pública {

// Conteúdo da interface

}

public interface InterfaceDemo01 {
    
    
    //以下四种定义抽象方法都可以
    public abstract void methodAbs1();

    abstract void methodAbs2();

    public void methodAbs3();

    void methodAbs4();
}

Precauções:

1. Para o método abstrato na interface, o modificador deve ser duas palavras-chave fixas: resumo público

2. Esses dois modificadores de palavra-chave podem ser omitidos opcionalmente. (Não recomendado para iniciantes)

3. Os três elementos do método podem ser definidos à vontade.

Observação: Depois de substituir a interface de palavra-chave, o bytecode Wenjie gerado pela compilação ainda é: .java ——>. Class

Se for Java 7, os conteúdos que podem ser incluídos na interface são:

1. Constante

2. Método abstrato

Se for Java 8, pode incluir adicionalmente:

3. O método padrão

4. Método estático

Se for Java 9, você também pode incluir:

5. Método privado

Etapas de uso da interface

1. A interface não pode ser usada diretamente, deve haver uma "classe de implementação" para "implementar" a interface.

formato:

implementação da classe pública nome da classe implementa nome da interface {

// Conteúdo

}

2. A classe de implementação da interface deve substituir todos os métodos abstratos na interface.

Implementação: Remova a palavra-chave abstrata e adicione as chaves do corpo do método.

3. Crie um objeto da classe de implementação e use-o.

O método padrão da interface

1. O método padrão da interface pode ser chamado diretamente implementando o objeto de classe.

2. O método padrão da interface também pode ser substituído pela classe de implementação da interface. (A classe de implementação substitui o método padrão da interface)

Método estático

A partir do Java 8. Métodos estáticos são permitidos na interface.

formato:

nome do método do tipo de valor de retorno estático público (lista de parâmetros) {

// Conteúdo

}

Basta substituir abstract ou default por static e trazer o corpo do método.

Nota: Você não pode chamar métodos estáticos na interface por meio do objeto da classe de implementação da interface.

Uso correto: chame o método estático diretamente através do nome da interface.

Formato: Nome da interface Nome do método estático (parâmetro);

public interface InterfaceDemo03 {
    
    
    public static void methodStatic(){
    
    
        System.out.println("静态方法执行成功");
    }
}

public class InterfaceDemo03Impl implements InterfaceDemo03{
    
    

}


public class InterfaceDemo03Main {
    
    
    public static void main(String[] args) {
    
    

//        InterfaceDemo03Impl inter = new InterfaceDemo03Impl();
//        inter.methodStatic();    该写法错误

        InterfaceDemo03.methodStatic();
    }
}

Método privado

Descrição do Problema:

Precisamos extrair um método público para resolver o problema de código duplicado entre os dois métodos padrão.

Mas esse método compartilhado não deve ser usado pela classe de implementação, deve ser privatizado. (Métodos privados só podem ser chamados pela própria interface e não podem ser usados ​​por classes de implementação ou outros)

Solução:

A partir do Java 9, métodos privados são permitidos em interfaces.

1. Métodos privados comuns, para resolver o problema de código repetido entre vários métodos padrão

formato:

tipo de valor de retorno privado nome do método (lista de parâmetros) {

Corpo do método

}

2. Método privado estático: resolva o problema de código repetido entre vários métodos estáticos

formato:

tipo de valor de retorno estático privado nome do método (lista de parâmetros)

Corpo do método

}

Constante de interface

As "variáveis ​​membro" também podem ser definidas na interface, mas devem ser modificadas com as três palavras-chave de public static final.

Do ponto de vista do efeito, esta é realmente a [constante] da interface.

Formato: nome da constante do tipo de dados final estático público = valor dos dados;

Nota: Uma vez que a palavra-chave final é usada para modificação, a descrição não pode ser alterada.

Precauções:

1. Para as constantes na interface, qualquer uma ou mais das finais públicas estáticas podem ser omitidas, mesmo que não sejam escritas. Escreva tudo para iniciantes.

2. As constantes na interface devem ser atribuídas e não devem ser atribuídas.

3. O nome da constante na interface, use letras totalmente maiúsculas, separadas por sublinhado. (Recomenda-se que as regras de nomenclatura sejam todas maiúsculas, separadas por sublinhados)

Interface e classe

1. A interface não possui bloco de código estático ou método de construção.

2. O pai direto de uma classe é único, mas uma classe pode implementar várias interfaces ao mesmo tempo.

formato:

public class MyInterfaceImpl implements MyInterfaceA,MyInterfaceB{
    
    
    @Override
    public void method() {
    
    
        System.out.println("对多个接口当中冲突默认方法进行了覆盖重写实现");
    }
}

3. Se houver métodos abstratos repetidos entre as várias interfaces implementadas pela classe de implementação, você só precisa substituir e reescrever uma vez.

4. Se a classe de implementação não substituir todos os métodos abstratos em todas as interfaces, a classe de implementação deve ser uma classe abstrata.

5. Se houver métodos padrão duplicados entre várias interfaces implementadas pela classe de implementação, a classe de implementação deve substituir os métodos padrão conflitantes.

6. Se um método na classe pai direta de uma classe entrar em conflito com o método padrão na interface, o método na classe pai é preferido.

Herança múltipla de interfaces

1. Existe uma única herança entre as classes e existe apenas uma classe pai direta.

2. Existem várias implementações entre classes e interfaces. Uma classe pode implementar várias interfaces.

3. Há várias heranças entre as interfaces.

Precauções:

1. Não importa se os métodos abstratos em várias interfaces pai são repetidos.

2. Se o método padrão em várias interfaces for repetido, a subinterface deve ser substituída pelo método padrão, [e deve conter a palavra-chave padrão]

Acho que você gosta

Origin blog.csdn.net/weixin_43215322/article/details/108675214
Recomendado
Clasificación