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

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

Polimorfismo.

Apresentações semelhantes


Apresentação em tema: "Polimorfismo."— Transcrição da apresentação:

1 Polimorfismo

2 Objetivos Conceito de polimorfismo Métodos sobrescritos (override)
Classes abstratas Métodos abstratos

3 Termo que caracteriza várias formas
Polimorfismo Termo que caracteriza várias formas

4 Polimorfismo Princípio pelo qual, a partir de uma subclasse, criam-se (instanciam-se) objetos utilizando referências do tipo de uma superclasse.

5 Uso do Polimorfismo Sobrescrita de métodos (override)
Métodos declarados na superclasse sendo redefinidos na subclasse com a mesma assinatura. Alterar o comportamento do método em uma subclasse.

6 Exemplo Superclasse Desenho Subclasses Quadrado e Triangulo. Quadrado e Triangulo são especializações da classe Desenho.

7 public class Desenho { public void imprime () { System. out
public class Desenho { public void imprime () { System.out.println("Figura não especificada"); }

8 public class Triangulo extends Desenho { public void imprime () { System.out.println("imprimindo triangulo"); }

9 public class Quadrado extends Desenho { public void imprime () { System.out.println("imprimindo quadrado"); }

10 public class Main { public static void main(String[] args) { int i; Desenho AR[ ] = new Desenho[6]; AR[0] = new Desenho(); AR[1] = new Triangulo(); AR[2] = new Quadrado(); AR[3] = new Quadrado(); AR[4] = new Triangulo(); AR[5] = new Triangulo(); for (i=0; i<6; i++){ AR[i].imprime(); }

11 Classes Abstratas Característica principal: a partir dela não poderá ser feito nenhum tipo de instância. Têm em sua declaração um ou mais métodos abstratos.

12 Declaração de classes abstratas
Uso da palavra reservada abstract

13 Declaração de classes abstratas
public abstract class Produto

14 Métodos abstratos Não tem corpo ou implementação e só pode estar numa classe abstrata. A classe que estende a classe abstrata é responsável em fazer a implementação dos métodos.

15 Declaração de métodos abstratos
abstract <tipo de retorno> <identificador>;

16 Exemplo Criar a superclasse abstrata Funcionario com os atributos nome e . Criar o método construtor com parâmetros e o método abstrato imprime. Criar a subclasse Medico com os atributos especialidade e CRM. Elaborar o método construtor com parâmetros e implementar o método abstrato imprime.

17 Criar a subclasse Administrador com os atributos
departamento e numero de funcionarios. Elaborar o método construtor com parâmetros e Implementar o método abstrato imprime. Criar o aplicativo TesteFuncionario. Instanciar o objeto Medico e o objeto Administrador. Chamar o método imprime para cada objeto.

18 public abstract class Funcionario { protected String Nome, ; public Funcionario(String Nome, String ) { this.Nome=Nome; this. = ; } abstract void imprime();

19 public class Medico extends Funcionario { private int CRM; private String esp; public Medico (String n, String e, int CRM, String esp) { super (n, e); this.CRM = CRM; this.esp = esp; } public void imprime(){ System.out.println("Medico"); System.out.println("Nome: " + Nome); System.out.println(" " + ); System.out.println("CRM " + CRM); System.out.println("Especialidade: " + esp);

20 public class Administrador extends Funcionario { private int numero; private String depto; public Administrador (String n, String e, int numero, String depto) { super (n, e); this.numero = numero; this.depto = depto; } public void imprime() { System.out.println("Administrador"); System.out.println("Nome: " + Nome); System.out.println(" " + ); System.out.println("Numero de funcionarios " + numero); System.out.println("Departamento: " + depto);

21 public class Main { public static void main(String[] args) { Medico Med1= new Medico("Plinio", 1234, "Oftalmo"); Administrador Adm1 = new Administrador("Maria", 10, "Financas"); Med1.imprime(); Adm1.imprime(); }

22 Exercício Criar a superclasse abstrata Funcionario com os atributos protegidos nome e salario. Criar métodos set e get para nome e salário. Declarar o método método abstrato reajuste. Criar a subclasse Vendedor com os atributos regiao e comissao. Criar os métodos set e get para região e comissão. Implementar o método abstrato reajuste acrescentando 10% ao valor do salario.

23 Criar a subclasse Secretaria com os atributos idioma e departamento
Criar a subclasse Secretaria com os atributos idioma e departamento. Criar os métodos set e get para idioma e departamento. Implementar o método abstrato reajuste acrescentando 15% ao valor do salario. Criar o aplicativo TesteFuncionario para inicializar os atributos, chamar os métodos reajuste e imprimir.

24 Exercicio 2 Criar a superclasse Conta com o atributo
privado saldo. Elaborar um método construtor com parâmetros. Definir um método debito que debite o saldo. Definir um método credito que credite o saldo. Criar o método get para o saldo.

25 Criar a subclasse ContaEspecial com o atributo privado limite
Criar a subclasse ContaEspecial com o atributo privado limite. Elaborar um método construtor com parâmetros. Redefinir o método debito: se o saldo retornado pelo método get for maior que 0 debitar o valor senão debitar o limite. Redefinir o método getSaldo retornando o valor do saldo + o limite.

26 Criar a subclasse Poupança com o atributo privado juros
Criar a subclasse Poupança com o atributo privado juros. Elaborar um método construtor com parâmetros. Redefinir o método credito da seguinte forma: O valorCredito = (getsaldo * juros ) + valor Chamar o método credito da superclasse para alterar o atributo.

27 Criar o aplicativo TesteContas
Criar o aplicativo TesteContas. Instanciar uma conta poupança e uma conta especial inicializando com o método construtor com passagem de parâmetros. Definir um valor para o debito e para o credito das duas contas. Imprimir o saldo das duas contas.


Carregar ppt "Polimorfismo."

Apresentações semelhantes


Anúncios Google