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

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

UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng. da Computação IF62C - Fundamentos de Programação Semana 12 – Overloading X Overriding Prof.a.

Apresentações semelhantes


Apresentação em tema: "UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng. da Computação IF62C - Fundamentos de Programação Semana 12 – Overloading X Overriding Prof.a."— Transcrição da apresentação:

1 UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng. da Computação IF62C - Fundamentos de Programação Semana 12 – Overloading X Overriding Prof.a Tânia Preto / Prof. Robinson Vida

2 Overloading X Overriding (i/iv) São formas diferentes de manipular um mesmo método; Override: ◦ É a sobrescrita de método; ◦ Ocorre no processo de herança, onde um método declarado e implementado na classe pai, pode ser redefinido na classe filha; ◦ Métodos marcados como final, private ou static não são herdados e por este motivo não podem ser sobrescritos; ◦ Outro ponto importante é que os métodos sobrescritos não podem declarar um modificador de acesso mais restritivo do que o que foi sobrescrito. Ex.: se na classe pai um método é protected ( pode ser acessado fora do pacote ao ser herdado ), na classe filha o respectivo método sobrescrito não pode ser default ( acessado só no pacote ) ou muito menos private ( acessado só na classe );

3 Overloading X Overriding (ii/iv) Override – Exemplo 1- Java: class Musician { // classe pai public int yearsOfStruggle; public void play(int howLong) { //metodo... } public void starve() { //metodo... } class Pianist extends Musician { //classe filha // override (sobrescrita) do método play public void play(int howLong) {... }

4 Overloading X Overriding (ii/iv) Override – Exemplo 2- C++: class Base { public: virtual void DoSomething( ) { x = x + 5; } private: int x; }; class Derived : public Base { public: virtual void DoSomething( ) { //sobreescreve o anterior y = y + 5; //acrescenta comando Base::DoSomething(); // invoca método da classe base } private: int y; };

5 Overloading X Overriding (ii/iv) Overload: ◦ É a sobrecarga de método; ◦ Os métodos sobrecarregados contém o mesmo nome, mas com tipos de parâmetros e/ou retornos diferentes; ◦ Não é o mesmo método (pois varia nos parâmetros e/ou retorno) e não sobrescreve o método pai; ◦ Métodos sobrecarregados podem ser usados na mesma classe ou subclasse, oferecendo mais opções aos usuários; ◦ Soluções mais elegantes podem ser obtidas a partir do uso de sobrecarga conforme mostra o exemplo 1; ◦ Construtor pode ser usado dentro de construtor na definição de novos métodos sobrecarregados, conforme exemplo 2;

6 Overloading X Overriding (ii/iv) Overload - Exemplo 1 java - - Sobrecarga oferecendo nova solução: Seja uma implementação de métodos para mostrar na tela diferentes tipos de dados: public class DataShow {... public void showString(String s) {... } public void showInt(int i) {... } public void showDouble(double f) {... } public void showIntDouble(int i, double f) {... } } // Neste exemplo foi usado um método diferente para cada tipo.

7 Overloading X Overriding (ii/iv) Overload - Exemplo 1 - cont. - Implementação reescrita usando o conceito de overload: public class DataShow {... public void show(String s) {... } public void show(int i) {... } public void show(double f) {... } public void show(int i, double f) {... }

8 Overloading X Overriding (ii/iv) Overload - Exemplo 2 – Java - Sobrecarga de método construtor public class A { public A(int x, float y) { //construtor 1 this(y); // usa construtor 2... } public A(float x) { // construtor 2 this((int)x, x); // usa construtor 1...... }

9 Overloading X Overriding (ii/iv) Overload - Exemplo 3 – C++ Sobrecarga public class Test { public static void calcular(int x, int y){ System.out.println(“dois numeros: ” + (x+ y)); } public static void calcular(int x, int y, int z){ System.out.println(“tres numeros: ” + (x+ y+ z)); } public static void main(String [] args){ int a = 10; int b = 20; int c = 30; calcular(b,c); // mostra: dois numeros: 50 calcular(b,c,a); // mostra: tres numeros: 60 } }


Carregar ppt "UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng. da Computação IF62C - Fundamentos de Programação Semana 12 – Overloading X Overriding Prof.a."

Apresentações semelhantes


Anúncios Google