17- Definição e uso de classes abstratas

Aula abstrata

A principal função da herança de classe é expandir as funções das classes existentes, mas para as operações de herança anteriores, as subclasses podem decidir se substituem um método a seu próprio critério. Neste momento, a classe pai não pode aplicar as convenções sexuais da subclasse (obrigatório você deve substituir certos métodos.) Neste caso, a herança de classe geralmente não é usada (no desenvolvimento real, é raro herdar uma classe completa que pode ser usada diretamente), mas deve ser herdada da classe Abstract, ao projetar a classe pai no futuro, a classe abstrata deve ter prioridade.

Conceitos básicos de classes abstratas

A principal função das classes abstratas é fazer convenções sobre a substituição de métodos em subclasses. Alguns métodos abstratos podem ser definidos em classes abstratas para implementar tais convenções. Os métodos abstratos referem-se a métodos que são definidos usando a palavra-chave abstract e não fornecem um corpo de método. A classe onde o método abstrato está localizado deve ser uma classe abstrata, e a classe abstrata deve ser definida usando abstrato;
adicionar um método abstrato à classe comum é uma classe abstrata;

abstract class Message{			//抽象类
	public abstract String test(); //抽象方法
}

As classes abstratas não podem ser instanciadas usando new. As classes abstratas não são classes completas. Se forem usadas, as seguintes condições devem ser atendidas:

  • A classe abstrata deve fornecer uma subclasse, e a subclasse usa extends para herdar uma classe abstrata;
  • As subclasses de classes abstratas (não classes abstratas) devem substituir todos os métodos abstratos na classe abstrata;
  • A instanciação de objeto de uma classe abstrata pode ser concluída usando polimorfismo de objeto por meio de up-casting de subclasse;

No geral, classes abstratas apenas adicionam métodos abstratos e requisitos de substituição obrigatórios para subclasses do que classes comuns. Os outros processos de uso são exatamente os mesmos que a herança de classe tradicional;
alguns comentários sobre classes abstratas:

  • Em grande medida, há um problema central com o uso de classes abstratas: as classes abstratas não podem ser instanciadas diretamente ;
  • O objetivo principal das classes abstratas é realizar operações de transição, portanto, quando você deseja usar classes abstratas para desenvolvimento, geralmente é necessário resolver a duplicação de código causada por problemas de herança de classe no design;

Descrição da classe abstrata

Classe abstrata é uma importante estrutura de design orientado a objetos. Quando se trata de classe abstrata, preste atenção aos seguintes pontos:

  • A palavra-chave final não deve ser usada ao definir uma classe abstrata, porque a classe abstrata deve ser uma subclasse;
  • A classe abstrata aparece como uma versão aprimorada da classe comum (a composição da classe abstrata é estendida com base na classe comum, mas com a adição de métodos abstratos).
    Como é estendida com base na classe comum, a classe comum é direta. Você pode definir atributos e métodos referindo-se a isso, então esses atributos devem ser necessários para abrir espaço de memória,
    então as classes abstratas devem ser fornecidas com métodos de construção e as subclasses também devem realizar chamadas de construção de classe pai de acordo com o princípio de instanciação de objetos de subclasse;
  • Nenhum método abstrato é permitido em uma classe abstrata, mas mesmo se não houver nenhum método abstrato, o objeto da classe abstrata não pode ser instanciado com new e deve ser feito com base no objeto da subclasse;
  • O método estático nunca é restrito pelo objeto ou estrutura instanciada e pode sempre ser chamado pelo nome da classe;

Modo de design de modelo (aplicação de classe abstrata)

A essência da classe abstrata pertence a uma classe aprimorada, então a classe já é clara e pode descrever todas as coisas reais relevantes.
Por meio da análise, também pode ser descoberto que o design da classe abstrata deve ser uma definição superior à da classe, abstrato O real aplicação da
classe O maior benefício das classes abstratas é o mesmo gerenciamento de métodos de subclasse, mas elas podem fornecer-se com métodos comuns e esses métodos comuns podem chamar métodos abstratos (esses métodos abstratos têm efeito apenas quando a subclasse fornece implementação)

Acho que você gosta

Origin blog.csdn.net/MARVEL_3000/article/details/111400672
Recomendado
Clasificación