English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Hoje vou compartilhar minha compreensão sobre classes abstratas e interfaces em Java, incluindo conteúdo de referência:
1. Classe Abstrata
1, definição:
public abstract class NomeDaClasse{}
Em linguagem Java, todos os objetos são descritos por classes, mas não todas as classes são usadas para descrever objetos. O que entendo por classe abstrata é uma extração elevada das partes comuns de um tipo de coisa, essa parte comum inclui atributos e comportamentos. Por exemplo, os animais como vaca, ovelha e porco têm a característica comum de terem pelagem e o comportamento comum de mamar. Portanto, podemos abstrair essa parte comum em uma classe de mamíferos, contendo atributo pelagem e comportamento de mamar. Quando a vaca, a ovelha e o porco herdam a classe de mamíferos, também têm a função de mamar. No que diz respeito à implementação dessa função, precisa ser implementada por si mesmo.
2, características
(1) A classe marcada com a palavra-chave Abstract é uma classe abstrata;
(2) A classe que é marcada com a palavra-chave Abstract é uma classe abstrata; e a classe abstrata não precisa conter métodos abstratos; e os métodos abstratos devem ser public ou protected, de outra forma não podem ser herdados pela subclasse. O padrão é public.
(3) Não pode haver implementação no método abstrato; caso contrário, o compilador emitirá um erro;
(4) A classe abstrata pode definir suas próprias variáveis de membro e métodos de membro;
(5) Quando a subclasse herda a classe abstrata, deve implementar todos os métodos abstratos da classe abstrata; caso contrário, a subclasse também deve ser definida como classe abstrata;
(6) A classe abstrata não pode ser instanciada.
3, verificar se as regras acima são realmente conforme descrito
Esta é uma tabela de verificação que eu editei no Word, converti em imagem e coloquei aqui:
Do ponto de vista dos resultados de verificação da figura acima, essas teorias são corretas
Dois, interface
1, definição:
public interface NomeDaInterface{}
A interface é usada para fornecer métodos. Segundo minha compreensão, é uma extração elevada de comportamentos comuns entre várias classes, por exemplo, todos os animais têm comportamentos comuns como comer e dormir. Portanto, podemos extrair esses dois comportamentos e encapsulá-los em uma interface. Quando um animal precisa executar esse comportamento, basta chamar a interface e realizar a implementação específica no próprio objeto. Assim, essa compreensão parece não diferir muito da classe abstrata. Vamos ver o exemplo a seguir. Se esses dois comportamentos forem colocados em uma classe abstrata, mas essa classe abstrata tiver ainda um comportamento de escalar, então quando um animal escalar, como uma cobra, herdar essa classe, ele implementará os três métodos de comer, dormir e escalar, então ele terá as funções de comer e dormir. No entanto, se um animal voador, como uma ave, herdar essa função, também terá as funções de comer, dormir e escalar, o que claramente não é necessário. Isso é um pouco inadequado. No entanto, quando eles herdam uma interface que contém apenas comer e dormir, eles têm as funções básicas de comer e dormir. No que diz respeito a escalar e voar, podem ser abstratos e colocados em uma classe abstrata, herdando conforme necessário e implementando suas próprias funções necessárias.
2, características:
(1O método pode ter suas próprias variáveis de membro, mas será implicitamente designado como public static final e apenas pode ser public static final. Todos os métodos no método são métodos abstratos, que serão implicitamente designados como public abstract.
(2)As interfaces definem apenas métodos abstratos, sem implementação específica;
(3)A classe que implementa a interface deve implementar todos os métodos definidos na interface;
3、Verifique se as teorias acima estão corretas
Da mesma forma, verifique se as teorias acima são corretas!
Terceiro, a diferença entre classes abstratas e interfaces:
1、As classes abstratas podem ter seus próprios métodos de membro e suas implementações específicas; As interfaces podem conter apenas métodos abstratos;
2、As classes abstratas podem conter variáveis de membro de vários tipos; As variáveis de membro das interfaces podem ser apenas public static final;
3、Uma classe pode herdar apenas uma classe abstrata, mas pode implementar várias interfaces;
4、As classes abstratas podem conter blocos de código estáticos e métodos estáticos; As interfaces não podem definir blocos de código estáticos e métodos estáticos;
Verifique se uma classe pode herdar apenas uma classe abstrata, mas pode implementar várias interfaces
Primeiro, defina duas classes abstratas: uma é a classe de mamíferos Mummals, e a outra é a classe de crawlers Crawler
/** * @createtime 2017Ano3Mês17Domingo, Manhã10:33:27 * @description Clase de mamíferos */ public abstract class Mammals { public String foods; public abstract void nurse(); public void eat(String food){ this.foods = food; System.out.println("Comer"+foods); } }
/** * * @createtime 2017Ano3Mês17Domingo, Manhã11:23:09 * @description Defina uma classe abstrata--Classe de crawlers */ public abstract class Crawler { public abstract void crawl(); }
Em seguida, defina duas interfaces: uma é a interface base BaseAction; a outra é a interface especial SpecialAction
/** * * @createtime 2017Ano3Mês17Domingo, Manhã11:03:42 * @description Defina uma interface chamada de ação básica */ public interface BaseAction { public String name = ""; public void eat(); public void sleep(); }
/** * @createtime 2017Ano3Mês17Domingo, Manhã11:24:56 * @description Defina uma interface para implementar comportamentos especiais */ public interface SpecialAction { public void study(); }
Então, defina uma classe básica People, herdando da classe Mummals, implementando as interfaces BaseAction e SpecialAction
/** * @createtime 2017Ano3Mês17Domingo, Manhã11:25:48 * @description Define uma classe comum--Humanos, herdam Mamíferos, implementam interfaces básicas e especiais */ public class Pessoas extends Mamíferos implements AçãoBase, AçãoEspecial{}} @Override public void estudar() { // TODO Auto-gênido método esboço } @Override public void comer() { // TODO Auto-gênido método esboço } @Override public void dormir() { // TODO Auto-gênido método esboço } @Override public void enfermeira() { // TODO Auto-gênido método esboço } }
Pode-se ver que uma subclasse pode implementar várias interfaces
Por fim, faça com que a classe básica Pessoas herde tanto a classe Mamíferos quanto a classe Crawler
/** * @createtime 2017Ano3Mês17Domingo, Manhã11:25:48 * @description Define uma classe comum--Humanos, herdam Mamíferos, implementam interfaces básicas e especiais */ public class Pessoas extends Mamíferos, Crawler{ @Override public void enfermeira() { // TODO Auto-gênido método esboço } }
Resumo
Aqui está o conteúdo completo da minha compreensão pessoal sobre a introdução ao Java abstract class e interface, espero que ajude a todos. Os amigos interessados podem continuar a consultar o site:
Exemplo de herança e abstração de código de bean no Spring
Introdução ao pensamento nuclear do Hibernate e ao exemplo de uso do interface
Exemplo de uso do interface (interface) no Java
Se houver点什么不足之处,欢迎留言指出。感谢朋友们对本站的支持!
Declaração: Este conteúdo foi extraído da internet, pertence ao respectivo proprietário. O conteúdo foi submetido e carregado voluntariamente pelos usuários da internet. Este site não possui direitos de propriedade, não foi editado manualmente e não assume responsabilidade por eventuais responsabilidades legais. Se você encontrar conteúdo suspeito de direitos autorais, por favor, envie um e-mail para: notice#w.3Aviso: Este conteúdo foi extraído da internet, pertence ao respectivo proprietário. O conteúdo foi submetido e carregado voluntariamente pelos usuários da internet. Este site não possui direitos de propriedade, não foi editado manualmente e não assume responsabilidade por eventuais responsabilidades legais. Se você encontrar conteúdo suspeito de direitos autorais, por favor, envie um e-mail para: notice#w, fornecendo provas relevantes. Uma vez confirmado, o conteúdo suspeito será imediatamente removido.