Hoje vou falar sobre minha própria compreensão das classes e interfaces abstratas em Java, incluindo conteúdo de referência:
1. Classe abstrata
1. Definição:
Classe de classe abstrata pública Nome {}
Todos os objetos no idioma Java são descritos pelas classes, mas nem todas as classes são usadas para descrever objetos. A classe abstrata que eu entendo é na verdade um alto grau de extração das partes públicas do mesmo tipo de coisa, que incluem atributos e comportamentos. Por exemplo, gado, ovelha e porcos têm todos os seus atributos públicos, e os comportamentos públicos estão todos amamentando, para que possamos abstrair a parte pública em um mamífero, contendo atributos, cabelos e comportamentos. Quando o gado, ovelha e os porcos herdam o mamífero, eles também têm a função da amamentação. Quanto a como concluir essa função, eles precisam implementá -la.
2. Recursos
(1) A classe modificada pela palavra -chave abstrata é uma classe abstrata;
(2) classes contendo métodos abstratos devem ser classes abstratas, mas classes abstratas não contêm necessariamente métodos abstratos; e métodos abstratos devem ser públicos ou protegidos, caso contrário eles não podem ser herdados por subclasses. O padrão é público.
(3) não pode haver implementação no método abstrato, caso contrário, a compilação será relatada;
(4) você pode definir suas próprias variáveis de membro e métodos de membros em uma classe abstrata;
(5) Quando uma subclasse herda uma classe abstrata, todos os métodos abstratos na classe abstrata devem ser implementados, caso contrário, a subclasse também deve ser definida como uma classe abstrata;
(6) Classes abstratas não podem ser instanciadas.
3. Verifique se as disposições acima são de fato como afirmado
Esta é uma tabela de verificação que editei no Word, e cortei em uma imagem e coloquei aqui:
A julgar pelos resultados da verificação na figura acima, essas teorias estão corretas
2. Interface
1. Definição:
Nome da interface da interface pública {}
A interface é usada para fornecer métodos. De acordo com o meu entendimento, é uma extração de alto nível de comportamentos públicos de várias classes. Por exemplo, o comportamento público de todos os animais é comer e dormir. Em seguida, podemos extrair e encapsular esses dois comportamentos em uma interface. Quando um animal precisar executar esse comportamento, basta chamar a interface e concluir a implementação específica em sua própria classe. Esse entendimento parece não ser diferente das classes abstratas, então vamos dar uma olhada no exemplo a seguir. Se esses dois comportamentos são colocados em uma classe abstrata, mas também há um comportamento rastreador na classe abstrata. Neste momento, quando um réptil, como uma cobra, herda essa classe, ele perceberá os três métodos de comer, dormir e rastejar, por isso tem as funções de comer, dormir e rastejar; Mas se um animal de classe voador é como um pássaro, quando herda esse método, também tem as funções de comer, dormir e rastejar. É óbvio que rastejar não é a função necessária, o que é um pouco inconsistência. No entanto, quando eles herdam apenas a interface de comer e dormir, eles têm as funções básicas de comer e dormir. Quanto a escalar e voar, eles podem ser abstraídos e colocados em uma classe abstrata, herdar sob demanda e cumprir as funções de que precisam sob demanda.
2. Recursos:
(1) A interface pode ter suas próprias variáveis de membros, mas elas serão implicitamente especificadas como final estática pública e só podem ser a final estática pública. Todos os métodos na interface são métodos abstratos e serão especificados implicitamente como resumo público.
(2) apenas métodos abstratos são definidos na interface e não há implementação concreta;
(3) a classe que implementa uma interface deve implementar todos os métodos definidos na interface;
3. Verifique se a teoria acima está correta
Da mesma forma, as teorias acima estão todas corretas!
3. A diferença entre classes abstratas e interfaces:
1. A classe abstrata pode ter seus próprios métodos de membros e suas implementações específicas; A interface pode conter apenas métodos abstratos;
2. Classes abstratas podem conter vários tipos de variáveis de membros; As variáveis de membros em interfaces só podem ser a final estática pública;
3. Uma classe pode herdar apenas uma classe abstrata, mas pode implementar várias interfaces;
4. Classes abstratas podem conter blocos de código estático e métodos estáticos; Blocos de código estático e métodos estáticos não podem ser definidos na interface;
Verifique se uma classe pode herdar apenas uma classe abstrata, mas pode implementar várias interfaces
Primeiro, defina duas classes abstratas: um mamífero mumals e uma aula de répteis de rastreador
/** * @CreateTime 17 de março de 2017 às 10:33:27 * @Description Mammals */Public Resumo Classe Mamíferos {public String Foods; Public Abstract Void Nurse (); public void Eat (String Food) {this.Foods = Food; System.out.println ("Eat"+Foods);}} /** * * @CreateTime 17 de março de 2017 às 11:23:09 * @Description Definir uma classe abstrata - classe Crawler */Classe de abstração pública CRAWLER {public abstract void Crawl ();}Em segundo lugar, defina duas interfaces: uma é a interface básica do Baseaction; o outro é a interface especial do SpecialAction
/** * * @CreateTime 17 de março de 2017 às 11:03:42 * @Description Defina uma interface chamada comportamento básico */interface pública Baseaction {public string name = "" public void Eat (); public void Sleep ();} /*** @CreateTime 17 de março de 2017 às 11:24:56* @Description Defina uma interface para implementar comportamento especial*/interface pública SpecialAction {public void Study ();}Em seguida, defina pessoas de classe básica, herdem a classe mummals e implemente a interface do BASEACTION e a interface do SpecialAction
/** * @CreateTime 17 de março de 2017 às 11:25:48 * @Description Definir uma classe comum - humano, herdar mamíferos, implementar interfaces básicas e interfaces especiais */public class Pessoas estende mamíferos implementos) Baseation, SpecialAction {@Override public void () {// Todo-Generated Método gerado automaticamente stub} @Override public void Sleep () {// TODO Método Gerado Auto-Gerado Stub} @Override public void enfermeiro () {// TODO Método Auto-Generado}}}Pode -se observar que uma subclasse pode implementar várias interfaces.
Finalmente, deixe a classe básica as pessoas herdarem a classe Mummals e a classe de rastreadores ao mesmo tempo
/** * @CreateTime 17 de março de 2017 às 11:25:48 * @Description Definir uma classe comum - humano, herdar mamíferos, implementar interfaces básicas e interfaces especiais */classe pública as pessoas estende mamíferos, crawler {@Override public voidResumir
O exposto acima é todo o conteúdo deste artigo sobre discutir brevemente o entendimento pessoal das classes e interfaces abstratas de Java. Espero que seja útil para todos. Amigos interessados podem continuar se referindo a este site:
Exemplos de herança e código abstrato de feijões na primavera
Introdução às principais idéias e interfaces de Hibernate
Exemplos de métodos de interface e uso em java
Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!