Hey...
Então uma dica rápida, mas tente entender isso pelo amor de Deus.
Observe a classe Pessoa:
Você vai ver que existem alguns modificadores nos atributos bem como private e aqueles métodos que começam com get e set certo?
Isso tudo faz parte do encapsulamento!
Existem outro métodos de acesso também, mas outras informações você pode procurar no google!
public class Pessoa {
private String nome;
private String cpf;
private String rg;
public Pessoa(String nome, String cpf, String rg) {
this.nome = nome;
this.cpf = cpf;
this.rg = rg;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getRg() {
return rg;
}
public void setRg(String rg) {
this.rg = rg;
}
}
Observe a classe Funcionário:
public class Funcionario extends Pessoa {
private String clt;
public Funcionario(String nome, String cpf, String rg, String clt) {
super(nome, cpf, rg);
this.clt = clt;
}
public String getClt() {
return clt;
}
public void setClt(String clt) {
this.clt = clt;
}
}
Observação:
Faça a seguinte pergunta a si mesmo: Funcionário é uma Pessoa ou um Animal?
É claro que é uma pessoa correto? Então ai você tem um exemplo de polimorfismo, onde o Funcionario é uma especialização de uma Pessoa!
Polimorfismo quer dizer várias formas, ou seja um Funcionário pode ser especializar mais ainda, bem, pode ser um Freelancer.
Conclusão:
Então Freelancer é um Funcionário, e um Funcionário é uma Pessoa!
Quanto mais superior a classe como no nosso caso a classe Pessoa, mais generica ela será, e ao contrário ela fica específica.
Entendeu mais ou menos a regra?
O necessário está ali em cima, qualquer dúvida da um toque, mas antes busque no google.
Abraço