Alison Monteiro 0 Denunciar post Postado Novembro 8, 2015 Uma dúvida talvez bem besta, mas que venho me questionando a respeito: Recentemente utilizei uma classe abstrata que todos os métodos que estavam nela não eram abstratos. Isso é um erro, ou seja, toda classe abstrata deve ter apenas métodos estáticos, ou não necessariamente? (Aparentemente, em java, todos os métodos devem ser abstratos, por isso a dúvida) Vlw :) Compartilhar este post Link para o post Compartilhar em outros sites
Diegus Miestro 21 Denunciar post Postado Novembro 9, 2015 Não, os métodos não precisam ser abstratos, mas a classe abstrata em si não faz sentido sem métodos abstratos. Os métodos abstratos das classes abstratas podem ser interpretados como requisitos para a classe que for usá-la. Classes abstratas só fazem sentido em desenvolvimento em equipe onde se deseja criar uma "checklist" do que deve existir. Segue links sobre classe abstrata e interface do PHP, mas a ideia é POO, então a linguagem não importa, a implementação e conceitos são os mesmos. Classes Abstratas PHP Interfaces PHP Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Novembro 9, 2015 Recentemente utilizei uma classe abstrata que todos os métodos que estavam nela não eram abstratos. Não. Apesar de no princípio não fazer sentido, as vezes existem classes que implementam uma interface que somente alguns métodos devem ser implementados. Os demais métodos, não implementados, devem ser especializados em outra classe. Ou seja, essa classe, não pode ser instanciada. Logo ela é abstrata sem ter métodos abstratos, mas ela herda a assinatura de métodos abstratos da interface. Nesse link, veja a relação entre a Interface Profile e o ProfileDecorator. (Aparentemente, em java, todos os métodos devem ser abstratos, por isso a dúvida) De jeito nenhum. Java exige que tenha ao menos um método abstrato ou que herde de uma interface ou outra classe abstrata a assinatura de um método abstrato. O PHP, diferente do Java, não tem necessidade de ter um método abstrato. Mas uma classe abstrata não pode ser diretamente instanciada. Compartilhar este post Link para o post Compartilhar em outros sites
Alison Monteiro 0 Denunciar post Postado Novembro 13, 2015 Não. Apesar de no princípio não fazer sentido, as vezes existem classes que implementam uma interface que somente alguns métodos devem ser implementados. Os demais métodos, não implementados, devem ser especializados em outra classe. Ou seja, essa classe, não pode ser instanciada. Logo ela é abstrata sem ter métodos abstratos, mas ela herda a assinatura de métodos abstratos da interface. Nesse link, veja a relação entre a Interface Profile e o AbstractDecorator. De jeito nenhum. Java exige que tenha ao menos um método abstrato ou que herde de uma interface ou outra classe abstrata a assinatura de um método abstrato. O PHP, diferente do Java, não tem necessidade de ter um método abstrato. Mas uma classe abstrata não pode ser diretamente instanciada. Entendi. Valeu! Desculpe a confusão. "(Aparentemente, em java, todos os métodos devem ser abstratos, por isso a dúvida)" Quis dizer apenas sobre os métodos das classes abstratas. Mas obrigado pela explicação. :) Compartilhar este post Link para o post Compartilhar em outros sites