Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouRaphaella Caldas Imperial Alterado mais de 8 anos atrás
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;
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.