Na hierarquia de herança de cima para baixo, as classes localizadas no nível superior são mais gerais e podem até ser mais abstratas. De uma certa perspectiva, as classes de ancestrais são mais gerais, elas contêm apenas alguns dos membros mais básicos, e as pessoas apenas o usam como a classe base para obter outras classes e não serão usadas para criar objetos. Mesmo, você só pode fornecer a definição do método sem implementá -lo, e as subclasses o implementam de acordo com necessidades específicas.
Esse método que fornece apenas definições de método, mas não implementa concretamente é chamado de método abstrato. As classes que contêm um ou mais métodos abstratas também devem ser declaradas como classes abstratas.
Use o modificador abstrato para representar métodos abstratos e classes abstratas.
Além de conter métodos abstratos, classes abstratas também podem conter variáveis específicas e métodos específicos. Mesmo que uma classe não contenha métodos abstratos, ela pode ser declarada como uma classe abstrata para impedir que ela seja instanciada.
Classes abstratas não podem ser instanciadas, métodos abstratos devem ser implementados em subclasses. Por favor, veja o seguinte código:
Importar java estático.lang.system. Driver d = novo driver (); Void SetName (Nome da String) {this.name = Name; public void work () {out.println ("Meu nome é" + this.getName () + ", estou dando uma palestra, por favor, não olhe em volta ..."); // Este método deve ser implementado public void work () {out.println ("Meu nome é" + this.getName () + ", estou dirigindo e não posso atender a chamada ...");
Resultados em execução:
Meu nome é Wang Ming, estou dando uma palestra, por favor, não olhe em volta ... meu nome é Xiao Chen, estou dirigindo e não posso atender o telefone ...
Algumas explicações sobre aulas abstratas:
Classes abstratas não podem ser usadas diretamente. No entanto, uma variável pode ser criada cujo tipo é uma classe abstrata e que aponte para uma instância de uma subclasse concreta. , isto é, a aplicação do polimorfismo.
Não pode haver métodos de construção abstratos ou métodos estáticos abstratos.
Uma aula se tornará uma classe abstrata nos seguintes casos:
Quando um ou mais métodos de classe são métodos abstratos;
Quando uma classe é uma subclasse de uma classe abstrata e não pode fornecer detalhes de implementação ou corpo de método para qualquer método abstrato;
Quando uma classe implementa uma interface e não pode fornecer detalhes de implementação ou órgão de método para qualquer método abstrato;
O que estamos falando aqui é que, nesses casos, uma classe se tornará uma classe abstrata e não se diz que a classe abstrata definitivamente terá essas situações.
Um erro típico: uma classe abstrata deve conter métodos abstratos. Mas, por outro lado, "uma classe que contém métodos abstratos deve ser uma classe abstrata" está correta.
De fato, uma classe abstrata pode ser uma classe completamente normal