[JAVA] Classe Abstrata

13/10/2016

0

O que é e pra que serve uma classe abstrata?
Wellington

Wellington

Responder

Posts

13/10/2016

Ricardo Pereira

reforça ainda mais a idéia que classes são apenas protótipos, a classe abstrata não pode ser instanciada, então ela server para atribuir ou simplesmente marcar atributos e comportamentos que são comuns à todas as instancias das subclasses, por exemplo:

public abstract class Animal(){

public abstract void respirar();
}
}


com isso estou dizendo que toda classe que vá extender de Animal vai herdar o comportamento de respirar(todo animal respira, caso contrario morre), agora porque também coloquei o método respirar como abstract? simples porque métodos abastratos tem apanas a assinatura, ele apenas marca o comportamento, só quis expressar que todo animal respira, mas cada animal respira de uma forma diferente, então neste caso aí, cada animal vai dizer a forma que respira



public class Mamifero extends Animal{

public void respira(){
// ar entra pela boca
//vai pela traqueia
//vai para os pulmões
//transforma O2 em CO2....
}
}



public class Peixe extends Animal{

public void respira(){

//agua entra pelas gueurras
//gueurras retiram O2 da aguá....
}
}




Reparou, com a classe abstrata eu defini que todo animal vai ter que implementar o método respirar, mas o processo de respiração varia de animal para animal, então eu deixo para a subclasse realizar o processo.


Agora se a implementação for a mesma para todas as classes filhas, eu poderia ter implementado este método na própria classe abstrata e as subclasses já herdariam este comportamento
Responder

28/10/2019

Stuart Linhares

reforça ainda mais a idéia que classes são apenas protótipos, a classe abstrata não pode ser instanciada, então ela server para atribuir ou simplesmente marcar atributos e comportamentos que são comuns à todas as instancias das subclasses, por exemplo:

public abstract class Animal(){

public abstract void respirar();
}
}


com isso estou dizendo que toda classe que vá extender de Animal vai herdar o comportamento de respirar(todo animal respira, caso contrario morre), agora porque também coloquei o método respirar como abstract? simples porque métodos abastratos tem apanas a assinatura, ele apenas marca o comportamento, só quis expressar que todo animal respira, mas cada animal respira de uma forma diferente, então neste caso aí, cada animal vai dizer a forma que respira



public class Mamifero extends Animal{

public void respira(){
// ar entra pela boca
//vai pela traqueia
//vai para os pulmões
//transforma O2 em CO2....
}
}



public class Peixe extends Animal{

public void respira(){

//agua entra pelas gueurras
//gueurras retiram O2 da aguá....
}
}




Reparou, com a classe abstrata eu defini que todo animal vai ter que implementar o método respirar, mas o processo de respiração varia de animal para animal, então eu deixo para a subclasse realizar o processo.


Agora se a implementação for a mesma para todas as classes filhas, eu poderia ter implementado este método na própria classe abstrata e as subclasses já herdariam este comportamento
Responder

28/10/2019

Stuart Linhares

O que é e pra que serve uma classe abstrata?

E no caso de uma classe conta como eu poderia fazer?
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar