O conceito e o uso da interface Java <BR /> em uma classe abstrata, um ou mais métodos abstratos podem ser incluídos;
A palavra -chave da interface é declarada, que pode ser considerada uma classe abstrata especial que especifica o que uma classe deve fazer, em vez de especificar como ela faz.
Existem também muitos exemplos de interfaces na realidade, como os discos rígidos de computador serial. O comitê em série da ATA não é responsável pela produção de discos rígidos, mas apenas especifica especificações comuns.
A Seagate, Hitachi, Samsung e outros fabricantes produzirão discos rígidos que atendem à interface de acordo com as especificações, e esses discos rígidos podem ser generalizados. 320g Seagate serial disco rígido e instale -o.
O código a seguir pode simular o Comitê ATA serial para definir a seguinte interface de disco rígido serial:
// interface de disco rígido serial interface pública SATAHDD {// Número de linhas de conexão public static Final Int Connect_line = 4;NOTA: As variáveis do membro declaradas na interface são todas da estática pública por padrão e devem ser exibidas inicializadas. Portanto, esses modificadores podem ser omitidos ao declarar constantes.
As interfaces são uma coleção de várias constantes e métodos abstratos, que atualmente parecem ser semelhantes às classes abstratas. De fato, as interfaces evoluíram de classes abstratas; portanto, a menos que especificado de outra forma, as interfaces desfrutam do mesmo "tratamento" que as classes. Por exemplo, várias classes ou interfaces podem ser definidas no programa de origem, mas no máximo uma classe ou interface pública pode estar disponível. Como o formato de herança de uma classe, as interfaces também podem ser herdadas e as sub-interfaces podem herdar constantes e métodos abstratos na interface pai e adicionar novos métodos abstratos, etc.
No entanto, a interface tem suas próprias características, resumidas da seguinte forma.
1) Somente métodos abstratos podem ser definidos na interface. Tentar definir variáveis de instância, métodos de instância não abstratos e métodos estáticos em uma interface são todos ilegais. Por exemplo:
interface pública SATAHDD {// O número de linhas de conexão Public Int ConnectLine; Seja public Type // Leia os dados public static string readData () {// Erro de compilação, a interface não pode conter o retorno do método estático "dados";3) Não há construtor na interface e não pode ser instanciado.
4) Uma interface não implementa outra interface, mas pode herdar várias outras interfaces. O recurso de multi-aprimoramento da interface compensa a herança única da classe. Por exemplo:
// Interface de disco rígido serial interface pública SATAHDD Estende a, b {// Número de linhas de conexão public static final Int Connect_line = 4; Interface;Por que usar interface
No desenvolvimento de projetos em larga escala, pode ser necessário inserir uma classe no meio da cadeia de herança para permitir que suas subclasses tenham certas funções sem afetar suas classes pais. Por exemplo, a -> b -> c -> d -> e, a é uma classe de ancestral. aula. Mas o problema é que o Java é um único idioma de herança. Dessa maneira, as modificações para as classes C, D e E afetam toda a cadeia de herança e não são traváveis.
A interface é uma garantia de inserção. Qualquer classe em uma cadeia de herança pode implementar uma interface, que afetará todas as subclasses desta classe, mas não afetará nenhuma classe pai desta classe. Tais classes deverão implementar os métodos especificados por essa interface, e as subclasses podem herdar automaticamente esses métodos dessa classe e, neste momento, essas subclasses são flugable.
O que nos preocupamos não é uma classe específica, mas se essa classe implementa a interface de que precisamos.
A interface fornece chamadas de interpolação e método.
As interfaces desempenham um papel importante na programação Java orientada a objetos. De fato, uma das tarefas mais importantes no estágio de design é projetar as interfaces de cada parte e formar a estrutura básica da estrutura do programa através da combinação de interfaces.
Uso de interfaces
O uso de interfaces é um pouco diferente do das classes. Onde você precisa usar uma classe, a nova palavra -chave será usada diretamente para criar uma instância de uma classe, mas a interface não pode ser usada assim porque a interface não pode usar diretamente a nova palavra -chave para criar uma instância.
Uma interface deve implementar seus métodos abstratos por meio de uma classe e, em seguida, instanciar a classe. A palavra -chave da interface de implementação da classe são implementos.
Se uma classe não puder implementar todos os métodos abstratos da interface, a classe deve ser definida como um método abstrato.
Uma instância de uma interface não pode ser criada, mas uma variável de referência do tipo de interface pode ser definida, o que aponta para uma instância da classe que implementa a interface.
Uma classe pode herdar apenas uma classe pai, mas pode implementar várias interfaces.
O formato da interface de implementação é o seguinte:
Classe Modificador O nome do nome da classe pai implementa várias interfaces {
Método de implementação
}
Por favor, veja o seguinte exemplo:
Importar java estático.lang.system Samsung Disco rígido}} // Interface de disco rígido serial SATAHDD {// Número de linhas de conexão public static final Int Connect_line = 4; ;}// Reparar interface de disco rígido FIXHDD {// Endereço de reparo Endereço da sequência de String = "Distrito Haidian, Pequim"; String readData () {Retorno "Data"; // Classe de disco rígido Samsung Samsunghd implementa Satahdd {// Samsung Drive Drive ReadData () {Return "Data"; Um disco rígido de má qualidade não pode gravar dados de dados abstratos xxhdd implementa Satahdd {// Disco rígido lê dados public string readData () {return "Data";Use interface como tipo
A interface é usada como um tipo de referência. Determine que deve ser qual método de classe seja usado está realmente chamando o método de classe de implementação correspondente.
Exemplos são os seguintes:
classe pública demonstração {public void Test1 (a a) {a.dosth (); a); Resultados em execução:
agora em b
Como você vê, as interfaces podem ser usadas como um tipo, usando interfaces como parâmetros de métodos e tipos de retorno.
A diferença entre a interface Java e as classes de classe abstrata <br /> são modelos de objetos, e classes e interfaces abstratas podem ser consideradas modelos de classes de concreto.
Como de uma certa perspectiva, as interfaces são uma classe abstrata especial, elas têm uma conexão profunda e têm grandes semelhanças, por isso é fácil se confundir sobre quem usar. Primeiro analisamos as semelhanças que eles têm.
Todos eles representam camadas abstratas de estruturas semelhantes a árvores. Ao usar variáveis de referência, tente usar a camada abstrata da estrutura de classe para separar a definição e a implementação do método.
Nenhum deles pode ser instanciado.
Todos podem conter métodos abstratos. Os métodos abstratos são usados para descrever quais funções o sistema fornece sem precisar se preocupar com implementações específicas.
Vamos falar sobre as principais diferenças entre classes abstratas e interfaces.
1) Classes abstratas podem fornecer implementações para alguns métodos, evitando implementações repetidas desses métodos em subclasses e melhorando a reutilização do código.
Public Abstract Classe A {public abstract void Method1 (); Method1 () {// C Método1}}Resumo A classe A possui duas subclasses B e C. Como A possui a implementação do Method Method2, o método Method2 não precisa ser reescrito nas subclasses B e C. Dizemos que A fornece funções públicas para subclasses, ou a restringem Comportamento de subclasses. Method2 é um exemplo do código reutilizável. A não define a implementação do método1, ou seja, B e C podem implementar o método1 do método de acordo com suas próprias características, que reflete as características do acoplamento solto.
Altere para a interface e veja:
interface pública a {public void method1 (); implementa um {public void method1 () {// c método1} public void method2 () {// c método2}}A interface A não pode fornecer funções públicas para a implementação das classes B e C, o que significa que A não pode restringir o comportamento de B e C. B e C podem exercer livremente suas características e métodos realistas do método1 e Method2, e a interface A não possui capacidade de controle.
2) Uma classe pode herdar apenas uma classe pai direta (talvez uma classe abstrata), mas uma classe pode implementar várias interfaces, que é a vantagem da interface.
interface a {public void method2 ();} interface b {public void method1 ();} classe C implementa a, b {public void method1 () {// c método1} public ic void method2 () {// c método2} } // c pode ser usado de maneira tão flexível e C tem a oportunidade de expandir e implementar outras interfaces a a = novo C (); A classe B estende A {public abstrate void method2 ();} classe C estende B {public void method1 () {// c método1} public void method2 () {// c método2}}Para a classe C, não haverá chance de herdar outras classes pais.
Para resumir, interfaces e classes abstratas têm suas próprias vantagens e desvantagens.
O modelo comportamental deve sempre ser definido através de interfaces, em vez de classes abstratas, de modo que as interfaces geralmente são preferidas e as classes abstratas devem ser usadas o mínimo possível.
Ao escolher uma classe abstrata, geralmente é a seguinte situação: você precisa definir o comportamento da subclasse e fornecer funções gerais para a subclasse.