videoaula Java de número 32 vou mostrar hoje como funciona as classes abstratas beleza para isso aqui eu criei a classe com nome animal e no mesmo package eu criei a classe test com método como que eu faço para deixar essa classe animal uma classe abstrata antes da palavra reservada Class eu informo aqui abstract dessa forma a minha classe animal virou uma classe abstrata beleza Qual é o motivo de eu deixar uma classe abstrata é quando eu não quero ou quando eu não preciso instanciar um objeto do tipo dessa classe por exemplo animal Você consegue imaginar
um animal do tipo animal não existe animais do tipo galinha do tipo cachorro mas animal do tipo animal não existe então isso é uma classe abstrata beleza e qual é a primeira diferença aí então entre uma classe abstrata para uma classe comum é que uma classe abstrata eu não posso instanci Ok vou tentar aqui então instanciar no meu método M um objeto do tipo animal e vai me gerar um erro dizendo que não pode ser instanciado o o tipo animal Então essa é a primeira diferença entre as classes abstratas e as classes comum e o
que mais eu posso fazer dentro de uma classe abstrata eu posso fazer tudo que eu posso fazer numa classe comum e mais criar métodos abstratos Ok E como que eu crio métodos abstratos no normal modificador de acesso que você quiser e a palavra reservada abstract o tipo de retorno o nome dele os parâmetros e ponto e vírgula um método abstrato ele não tem corpo você finaliza ele com ponto e vírgula agora a primeira classe concreta que é animal terá Obrigatoriamente que sobrescrever esse método da mesma forma com o mesmo modificador de acesso com o mesmo
retorno com os mesmos parâmetros com o mesmo nome e implementar um corpo a ele ok então é para isso que serve os métodos abstratos você obriga a primeira classe concreta que sobrescrever aqui este método Beleza então vamos fazer o teste eu vou criar aqui uma classe com o nome ave e essa classe eu vou aqui herdar de animal automaticamente vai me gerar um erro dizendo que eu não implementei o método fazer barulho então eu tenho que sobrescrever porque a minha classe avve é uma classe concreta Ok E como que eu sobrescrevendo com o mesmo retorno
com o mesmo nome com os mesmos parâmetros e agora sim Obrigatoriamente eu tenho que fazer aqui o corpo dele ok dessa forma eu sobr escrevi então o método fazer barulho agora se essa classe avve fosse também uma classe abstrata então eu não teria que e implementar o método por quê Porque um método abstrato ele deve ser implementado pela primeira classe concreta que é d de animal então todas as classes abstratas que herdarem na sequência não terão necessidade de implementar esse método mas se eu criar aqui uma outra classe com nome de pombo por exemplo e
essa classe de ave que está herdando de animal e essa classe for uma classe concreta então eu terei que implementar o método fazer barulho eu posso escrever como da primeira forma que eu fiz eu posso aqui se tiver no Eclipse adicionar automaticamente tá aí Beleza então é assim que funciona aí os métodos abstratos e a classe abstrata numa classe abstrata Eu posso também ter métodos comuns Public void dormir com um corpo também e os métodos comuns não são obrig a implementação beleza somente os métodos abstratos Espero que esteja entendido aí como funciona o abstract e
até a próxima aula