A Classe Carro não deve implementar todos os metodos da interface para que o código compile?
A Classe Carro não deve implementar todos os metodos da interface para que o código compile?
Bom dia Denis,
Se a classe carro implementou a interface, sim.
Exe: class Carro implements <Nome_Da_Interface>{}
sem o sinal de <>
quando se implementa uma interface a implementação dos métodos dessa interface se torna obrigatório.
Oi Denis,
Não, pois Carro é uma classe abstrata, a implementação não é necessária, lembre-se que todo método de uma interface é abstrato, então em uma classe abstrata a implementação é opcional, porém toda classe que extender de Carro mesmo sem implementar a interface, vai precisar sobreescrever os métodos que ainda não foram implementados(opcionalmente) na classe Carro.
É isso mesmo q o Douglas falou.
Pensei que a classe carro fosse concreta, se fosse, estaria valido o que eu falei.
Att,
só para complementar, essa dúvida surgiu porque programa em C# há anos e no C#, isso não é possivel, ou seja, mesmo a classe sendo abstrata é preciso ter o método da interface na classe. Porém, caso não queira implementar código nela pode-se declarar este método como abstrato também.
Denis, entendi, no java de uma interface ou de uma classe abstrata para outra classe abstrata acredito que fica implicito por ser a mesma declaração(public abstract), apenas na proxima classe concreta que será obrigatório a implementação.
CarroConcreto herda de Carro, logo o método que está em Carro será implementado por ele, não explicitamente.