Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Herança vs Interface.. Como faço para pegar os valores no get na classe Gerente sendo implementada da interface funcionário ou o correto usar herança nesse caso?

public interface Funcionarios {

    int setCodigo(int codigo);
    int getCodigo();
    String setNome(String nome);
    String getNome();
    String setcpf(String cpf);
    String getcpf();
    Double setSalario(double salario);
    Double getSalario();


}
public class Gerente implements Funcionarios {


    @Override
    public int setCodigo(int codigo) {
        return codigo;
    }

    @Override
    public String setNome(String nome) {
        return nome;
    }

    @Override
    public String setcpf(String cpf) {
        return cpf;
    }

    @Override
    public Double setSalario(double salario) {
        return salario;
    }

    @Override
    public int getCodigo() {
        return getCodigo();
    }

    @Override
    public String getNome() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public String getcpf() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public Double getSalario() {
        // TODO Auto-generated method stub
        return null;
    }

}
3 respostas

Eduardo, nesse caso, você não precisa usar interface, muito menos herança. Posso estar deixando passar algo, mas você não precisa da interface ai e tem que definir os atributos da classe Gerente.

Vamos supor que eu crio uma classe abstrata funcionários e quero usar ela para criar tipos de funcionário. ex Gerente, designer, engenheiro, tipo no exemplo do curso. O que eu quero saber se tem como fazer sem usar herança, pois todo fórum que eu visito eu vejo que todo mundo falando para evitar ao máximo o uso da herança, por isso queria refazer o exercício proposto pelo curso utilizando somente interface.

solução!

Sim, você pode fazer isso com herança, mas a gente precisa avaliar o uso. Exemplo: se você tem métodos que são comuns a todos esses tipos, é preferível que se use interface, mas esses métodos devem ser do tipo get e set como você está fazendo, por que? por que os gets e sets estão relacionados ao estado do objeto.

Pode ser interessante usar get e set em herança em alguns casos, mas isso gera um acoplamento que pode ser evitado.

Nos cursos de java alguns exemplos são dados.