A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Capítulo 9 (continuação) Polimorfismo. 2Capítulo 9 – Herança (Polimorfismo) Polimorfismo Upcast Downcast Operador instanceof Polimorfismo.

Apresentações semelhantes


Apresentação em tema: "Capítulo 9 (continuação) Polimorfismo. 2Capítulo 9 – Herança (Polimorfismo) Polimorfismo Upcast Downcast Operador instanceof Polimorfismo."— Transcrição da apresentação:

1 Capítulo 9 (continuação) Polimorfismo

2 2Capítulo 9 – Herança (Polimorfismo) Polimorfismo Upcast Downcast Operador instanceof Polimorfismo

3 3Capítulo 9 – Herança (Polimorfismo) c new Conta() new ContaCorrente() new ContaPoupanca() (Conta) Upcast ( relacionamento é-um )

4 4Capítulo 9 – Herança (Polimorfismo) Upcast Conta c; c = new Conta();... c = new ContaPoupanca();... c = new ContaCorrente();

5 5Capítulo 9 – Herança (Polimorfismo) Upcast Conta c = c.setNumero(1005); c.setNome(Manuel); new Conta() new ContaCorrente() new ContaPoupanca() Métodos presentes na classe Conta podem ser normalmente utilizados sobre um objeto contido numa variável do tipo Conta.

6 6Capítulo 9 – Herança (Polimorfismo) Upcast Conta c = c.debitarTarifa(10.0); new Conta() new ContaCorrente() new ContaPoupanca() Métodos ausentes na classe Conta não podem ser utilizados por uma variável mesmo que o objeto contido nela possua tal método. Não permitido

7 7Capítulo 9 – Herança (Polimorfismo) Upcast / Downcast ContaCorrente cc = new ContaCorrente();... Conta c = cc; Conta c = new ContaCorrente();... ContaCorrente cc = c; ContaCorrente cc = (ContaCorrente) c; Não permitido Upcast Downcast Ok

8 8Capítulo 9 – Herança (Polimorfismo) Operador instanceof Conta c = ; ContaCorrente cc; /* * Se a conta em questão for uma conta corrente, * debita R$10,00 de tarifa. */ if (c instanceof ContaCorrente) { cc = (ContaCorrente) c; cc.debitarTarifa(10.0); }

9 9Capítulo 9 – Herança (Polimorfismo) Polimorfismo Conta c = c.retirar(500.0); new Conta() new ContaCorrente() new ContaPoupanca() Cada objeto executa o seu próprio método conforme o tipo daquele objeto e independente do tipo de variável que está sendo utilizada. Deve-se cobrar o CPMF?

10 10Capítulo 9 – Herança (Polimorfismo) Polimorfismo Run-time binding O run-time bindingou dynamic binding oulate binding (ligação tardia) define a capacidade que a linguagem de programação tem de, em tempo de execução, descobrir que tipo de objeto está na memória naquele momento, tratando-o conforme foi definido para aquele tipo.

11 11Capítulo 9 – Herança (Polimorfismo) Exercício A partir das 4 classes abaixo fornecidas pelo instrutor, crie uma classe executável seguindo a especificação do próximo slide FiguraGeometrica getArea() Quadrado lado getArea() Triangulo base altura getArea() Circulo raio getArea()

12 12Capítulo 9 – Herança (Polimorfismo) Exercício (continuação) Esta classe executável deverá criar um array de FiguraGeometrica conforme abaixo: FiguraGeometrica[ ] listaFiguras = { new Quadrado(4), new Triangulo(3, 4), new Quadrado(6.5), new Circulo(2), new Triangulo(6.5, 10) }; A seguir, o programa deverá exibir a área de cada figura pertencente ao array e, ao fim, deverá exibir a quantidade de quadrados no array. O resultado deverá ser exibido conforme o próximo slide.

13 13Capítulo 9 – Herança (Polimorfismo) Exercício (continuação) A classe a ser criada deverá exibir: Area da figura: 16.0 Area da figura: 6.0 Area da figura: Area da figura: Area da figura: 32.5 Total de quadrados: 2


Carregar ppt "Capítulo 9 (continuação) Polimorfismo. 2Capítulo 9 – Herança (Polimorfismo) Polimorfismo Upcast Downcast Operador instanceof Polimorfismo."

Apresentações semelhantes


Anúncios Google