Duvida quando a logica de OO

Vou fazer um sistema de agenda escolar p/ treino.
Mais estou como uma duvida:
Pois vou ter aluno, responsável e funcionário.
Eu faço uma classe funcionário e estendo para professor, diretor etc ???
Todos os vão ter que ter um endereço completo, então eu colocar endereço de cada classe fica repetivo d+ (né?) e sem fala se depois eu quizer tira ou acresentar algo vai dá mais trabalho… A ai eu poderia fazer uma classe endereço…
Mais ai funcionário não poderia herda endereço…

Eu faço a parte de endereço em cada classe mesmo? Ou tem outro modo?

Herdar = relação “é-um”.

Como um funcionário não é um endereço, mas sim ele tem um endereço, a classe Funcionário não pode herdar de Endereço. (Até porque ele pode ter vários endereços :slight_smile: )

Crie uma classe “Endereço” contendo as informações como CEP, nome e número da rua etc.

Se eu criar a classe endereço, como vou relacionar a pessoa a quem pertence se não posso herda…
Por meio de objeto/polimorfismo???

[quote=xandi_m5]Vou fazer um sistema de agenda escolar p/ treino.
Mais estou como uma duvida:
Pois vou ter aluno, responsável e funcionário.
Eu faço uma classe funcionário e estendo para professor, diretor etc ???
Todos os vão ter que ter um endereço completo, então eu colocar endereço de cada classe fica repetivo d+ (né?) e sem fala se depois eu quizer tira ou acresentar algo vai dá mais trabalho… A ai eu poderia fazer uma classe endereço…
Mais ai funcionário não poderia herda endereço…

Eu faço a parte de endereço em cada classe mesmo? Ou tem outro modo?[/quote]

Poderia criar uma classe Pessoa com os atributos genéricos para todos…
Incluse Pessoa tem um endereço, ou uma lista de endereço!
Flw

Por exemplo,

class Pessoa {
    private Endereco endereco;
}

[quote=entanglement]Por exemplo,

[code]
class Pessoa {
private Endereco endereco;
}

class Aluno extends Pessoa{
// Código específico do aluno
}
[/code][/quote]

Flw

[quote=entanglement]Por exemplo,

class Pessoa { private Endereco endereco; } [/quote]

Então vai fica tipo assim??

[code]class Pessoa{
private String nome;
private int idade;
private Endereco endereco;

}[/code]

[code]class Funcionario extends Pessoa{

String cargo;


}[/code]

class Diretor extends Funcionario{ ... }

class Endereco{ ... }

Isso ae, este é o caminho.

Vlw Então…

Obrigado a todos…

Se fui fazer um crud simples em JSF. Com esse estrutura…
E se eu fizer aluno herdando de pessoa os valores fica todos null no Banco de Dados quando salvo aluno, mais se eu não herde de pessoa e declarar os valores em Aluno eles salva normal…
Pq isso? Como resolvo?