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

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

Classes Abstratas e Interface. 2 Classe Abstrata  Uma classe abstrata serve apenas como modelo para uma classe concreta (classe que comumente usamos);

Apresentações semelhantes


Apresentação em tema: "Classes Abstratas e Interface. 2 Classe Abstrata  Uma classe abstrata serve apenas como modelo para uma classe concreta (classe que comumente usamos);"— Transcrição da apresentação:

1 Classes Abstratas e Interface

2 2 Classe Abstrata  Uma classe abstrata serve apenas como modelo para uma classe concreta (classe que comumente usamos);  Como classes abstratas são modelos de classes, então, não podem ser instanciadas, devem sempre ser herdadas por classes concretas;  Todos os métodos abstratos de uma classe abstrata devem obrigatoriamente ser implementados (sobrescritos) em uma classe concreta.

3 3 Classe Abstrata  Um método abstrato não possui corpo, apenas define a assinatura (protótipo) do método;  Classes abstratas são úteis quando uma classe define métodos a serem implementados apenas pelas suas subclasses;  Usamos o modificador de acesso abstract, uma palavra reservada do Java, para se criar classes abstratas;  Usa-se o mesmo modificador de acesso para se definir os métodos abstratos.

4 4 Classe Abstrata  Toda classe que possui pelo menos um método abstrato é automaticamente abstrata e deve ser declarada como tal;  Uma classe pode ser declarada abstrata mesmo se ela não possuir métodos abstratos;  Não existem atributos abstratos.

5 5 Definição de uma Classe Abstrata public abstract class AparelhoEletronico { private boolean ligado; //métodos abstratos – não são implementados public abstract void ligar(); public abstract void desligar(); public void setLigado(boolean ligado) { this.ligado = ligado; } public boolean isLigado() { return ligado; }

6 6 Estendendo uma Classe Abstrata public class TV extends AparelhoEletronico { private int canal; private int volume; public TV() { } /* implementação dos métodos abstratos */ public void desligar() { super.setLigado(false); setCanal(0); setVolume(0); } public void ligar() { super.setLigado(true); setCanal(3); setVolume(25); } // abaixo teríamos os métodos de get e set para canal e volume... }

7 7  Programa principal TV tv = new tv(); tv.ligar(); tv.Imprimir(); //tem que implementar tv.desligar(); tv.Imprimir();

8 8 Interface (o termo) » Interface (a palavra reservada): Java estendeu o conceito de interfaces à um nível ainda mais flexível que permite construir entidades que funcionam como um tipo de "contrato", onde são especificados os atributos e métodos que as classes que implementem a interface são obrigadas a implementar.

9 9 Interface (exemplo) public interface ControleRemoto { /* Perceba que apenas a assinatura dos métodos estão aqui. E cada método termina com um ponto-e-vírgula (;) ou seja, não são implementados */ void mudarCanal(int canal); void aumentarVolume(int taxa); void diminuirVolume(int taxa); boolean ligar(); boolean desligar(); }

10 10 Interface (a palavra reservada)  Como vimos anteriormente, uma classe pode estender suas funcionalidades obtendo as características de outra classe num processo que chamamos de herança;  Uma interface não é herdada, mas sim, implementada;  É um conjunto de métodos relacionados que não tem corpo, ou seja, sem implementação;

11 11 Interface (a palavra reservada)  Todo o código dos métodos da interface deve ser escrito dentro da classe que a implementa;  Obtemos as assinaturas dos métodos da interface em uma classe usando a palavra reservada implements ;  Uma classe só pode estender (herdar) um única superclasse, mas pode implementar várias interfaces, provendo uma maneira de se ter “herança múltipla” em Java.

12 12 Motivação para o uso de Interface  Estabelecer um “tipo” comum, um contrato, o qual várias outras classes podem fazer uso, sem necessitar saber da implementação;

13 13 Interface como um “tipo” public interface Funcionario { public String getNome(); public double getSalario(); } public class Pessoa implements Funcionario { private String nome; private double salario; public Pessoa(String nome, double salario) { this.nome = nome; this.salario = salario; } public String getNome() { return nome; } public double getSalario() { return salario; } } public class ExecutaPessoa { public static void main (String[] args) { Funcionario func = new Pessoa("José Dirceu", 1000000); System.out.println( func.getSalario()); } }

14 14 Implementando múltiplas interfaces public interface Radio { public void liga(); public void desliga(); public void trocaEstacao( int frequencia); } public interface Relogio { public String getHoras(); } public class RadioRelogio implements Radio, Relogio { public void liga() { // Implentação } public void desliga() { // Implentação } public void trocaEstacao (int frequencia) { // Implentação } public String getHoras() { // Implentação return null; } }

15 15 Particularidades sobre Interfaces  Todos os atributos de uma interface são do tipo public static final (constantes) – mesmo que esses modificadores não sejam explícitos;  Todos os métodos de uma interface são implicitamente públicos e abstratos;  Todos os métodos de uma interface devem ser escritos na classe que a implementa;  Não há como instanciar uma interface, portanto não há método construtor;


Carregar ppt "Classes Abstratas e Interface. 2 Classe Abstrata  Uma classe abstrata serve apenas como modelo para uma classe concreta (classe que comumente usamos);"

Apresentações semelhantes


Anúncios Google