Baixe o app para aproveitar ainda mais
Prévia do material em texto
Thiago Rodrigues POO 1 Membros Protected • Para assegurar a reutilização e ocultação de informação na O.O., o uso de membros protegidos é essencial; class JConta { protected int numero; } class JConta2 extends JConta { public void SetNum(int x){ numero = x; } } • Membro protegidos podem ser acessados pelos métodos da superclasse, da subclasse e por qualquer método no mesmo pacote (acesso do pacote); Thiago Rodrigues POO 2 Herança Pública x Herança Privada • Quando métodos public e protected são herdados por uma subclasse, qual será a seção de destino destes métodos? • A orientação à objetos define dois tipos de herança que determina qual será a seção de cada método herdado; public void SuPublic() { ... } protected void SubProtected() { ... } public void SuPublic() { ... } protected void SubProtected() { ... } pública public void SuPublic() { ... } protected void SubProtected() { ... } private void SuPublic() { ... } private void SubProtected() { ... } privada Thiago Rodrigues POO 3 Polimorfismo dos Objetos • Objetos podem instancializar qualquer subclasse na hierarquia de classes, se comportando como uma classe especializada; SuperCl obj = new SubCl(); • A restrição á que o objeto de uma superclasse tem o acesso restrito aos métodos da subclasse public class JCad { String nome; int idade; public int getIdade() { return idade; } public void setIdade(int idade) { this.idade = idade; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome;} } public class JAluno extends JCad{ int RA; String curso; public String getCurso() { return curso; } public void setCurso(String curso) { this.curso = curso; } public int getRA() { return this.RA; } public void setRA(int RA) { this.RA = RA; } } Thiago Rodrigues POO 4 public class JMain { public static void main(String[] args){ JCad obj; obj = new JAluno(); obj.setNome(“José"); obj.setIdade(20); obj.setRA(720000); } } JCad JAluno Casting de Objetos • As regras para o cast de objetos são as mesmas que as regras do polimrofismo de objetos; • Um objeto de uma superclasse pode ser convertido para um objeto de uma subclasse, entretanto o oposto não é válido; • Para que a conversão seja válida o objeto da superclasse deve estar instancializado à subclasse em questão; • Verificação na execução; Thiago Rodrigues POO 5 public class JMain { public static void main(String[] args){ JCad obj; obj = new JAluno(); obj.setNome("José"); obj.setIdade(20); ((JAluno) obj).setRA(720000); } } public class JMain { public static void main String[] args){ JCad obj; obj = new JCad(); obj.setNome("José"); obj.setIdade(20); ((JAluno) obj).setRA(720000);//ERRO } }
Compartilhar