Quando posso usar herança (membros da classe-filha diferentes)?

Se por exemplo eu tiver uma classe-pai Funcionário com seus atributos e métodos, obrigatoriamente a classe filha, por exemplo Administrador, terá que ter atributos e métodos diferentes da classe-pai Funcionário?

Nao…
Podem ser iguais… porem você vai tar sobrescrevendo esses metodos…

Se você tiver em funcionario um metodo

EX:

[quote]public void Oi()
{
System.out.println(“Oi Func”);
}[/quote]

Se você fizer outro metodo igual numa classs filha só que com outro println scrito Oi Filha… quando você instanciar essa filha oq vai valer é o metodo dela…

Abraço qlqr coisa posta ae

ffa, acho que você ainda não entendeu direito o conceito de herança. por que você iria querer ter atributos e métodos diferentes da classe-pai? às vezes até faz sentido atributos e métodos diferentes, mas normalmente, a classe filho só adiciona métodos e atributos. por exemplo:

Um Animal tem nome, idade, peso e tamanho.
Um Cachorro tem pedigree, raça e cor.

A classe Cachorrro não precisa ter os atributos da classe Animal declarados nele, pois o extends já deixa isso implicito. Codificando, fica assim:

public class Animal{
    protected String nome;
    protected int idade;
    protected double peso, tamanho;
}
public class Cachorro extends Animal{
    public String pedigree, raca, cor;

    public String get nome(){
        return this.nome;
    }
}

repare que a classe Cachorro acessa a String nome como se fosse da classe mesmo que na verdade a variável nome se encontre na classe Animal, isso acontece por conta da herança

espero ter esclarecido alguma coisa, se voc~e já entendia isso me desculpa, mas é que realmente parece que não

abraço!

Com bem disse o Gabriel Cardelli, não necessariamente há que se ter métodos e atributos diferentes da classe ‘Pai’ …

porém, se uma classe ‘Filha’, não possuir nenhum método ou atributo diferente da classe ‘Pai’ talvez (eu disse talvez) não haja sentido na sua existência, afinal, o q esta classe ‘Filha’ fará??

É sempre aconselhável q os objetos tenham suas responsabilidades, justificando sua existência. Em um projeto grande por exemplo pode custar caro criar várias classes sem mto propósito (não estou falando q é este o caso)

Por exemplo, não é mto aconselhável classes apenas com métodos get e set, sem nenhuma implementação efetiva de regras de negócios … senão me engano Fowler nominou isso d ‘classes de dados’, e recomenda-se sua refatoração …

Não interprete q estou pré-julgando q sua modelagem está incorreta, apenas quis proporcionar uma troca de idéias sobre … boas práticas … :slight_smile:

Valeu