Chamamos a classe modificada com a palavra-chave abstract como uma classe abstrata , ou seja, uma classe abstrata , por exemplo:
classe abstrataA{…}
Chamamos métodos modificados com a palavra-chave abstract como métodos abstratos , ou seja, métodos abstratos , por exemplo:
abstrato int max(int x,int y);
Perceber:
1) Para métodos abstratos, apenas a declaração é permitida e a implementação não é permitida, ou seja, não há corpo do método, e final e abstrato não podem ser usados para modificar um método ou classe ao mesmo tempo, e estático é não é permitido modificar o método abstrato, ou seja, o método abstrato deve ser um método de instância.
2) Classes abstratas podem ter métodos abstratos ou métodos não abstratos, mas classes não abstratas não podem ter métodos abstratos.
Por exemplo: o método max() na classe A é um método abstrato e o método min() é um método normal (método não abstrato).
abstractclassA{abstractintmax(intx,inty);intmin(intx,inty){returnx<y?x:y;}}
Para classes abstratas, você não pode usar o operador new para criar objetos desta classe. Se uma classe não abstrata for uma subclasse de uma classe abstrata, ela deverá substituir o método abstrato da classe pai e fornecer o corpo do método. que não pode A razão pela qual é permitido usar final e abstract para modificar um método ou classe ao mesmo tempo.
Podemos usar a classe abstrata para declarar um objeto. Embora o objeto não possa ser criado usando o operador new, o objeto pode se tornar um objeto upcast de seu objeto de subclasse, para que o objeto possa chamar o método substituído pela subclasse.
Nota: Uma classe abstrata pode não ter um método abstrato. Se uma classe abstrata for uma subclasse da classe abstrata, ela poderá substituir o método abstrato da classe pai ou herdar o método abstrato da classe pai.