UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis 2015.2 Classes Abstratas Classes genéricas que ditam o comportamento das classes filhas, induzindo as mesmas a implementar seus métodos. Não é possível criar instâncias de classes abstratas, apenas das filhas dela. Métodos somente são implementados nas classes filhas. Servem de guia para as classes filhas saberem quais métodos devem ser implementados. Classes Abstratas x Métodos Abstratos Métodos abstratos possuem apenas a definição de sua assinatura, sem nenhuma implementação na classe pai. Classes filhas são obrigadas a implementar todos os métodos abstratos da classe pai. Classe que contenha pelo menos um método abstrato é, obrigatoriamente, uma classe abstrata. Classes abstratas podem ter apenas métodos não abstratos ou um misto de métodos abstratos e não abstratos. Classe Abstrata • Exemplo de classe abstrata com métodos abstratos: Classe Abstrata • Exemplo de classe que herda de uma classe abstrata: Exercício! Criar a classe abstrata Arvore com os métodos abstratos defineNomeFruto e calculaEpocaFloracao e os atributos nomePopular, nomeCientifico e especie. Criar a classe Jambeiro, filha de Arvore. Criar a classe Jaqueira, filha de Arvore. Implementar de forma diferente os métodos abstratos nas duas classes filhas. Interfaces São classes nas quais TODOS os métodos são abstratos. Possui comportamento semelhante às classes abstratas, ou seja, não é possível instanciar uma interface. Métodos não podem ser declarados como protected ou private, apenas como public. Interfaces podem herdar de outras interfaces, mas não de classes. Interfaces • Exemplo de Classe que implementa uma interface: Interfaces • Classes podem herdar de outra classe e implementar uma interface: Exercícios Criar interface Felino com métodos atacaCaca, qtdFilhotesCria, turnoCaca. Criar classe abstrata Pantera que implementa interface Felino e contém os métodos tipoPantera (não abstrato) e velocidadeMaxima (abstrato). Criar classe Tigre que é filha de Pantera. No método tipoPantera colocar Tigre. Criar classe Principal com método main, que invoque os métodos tipoPantera e velocidadeMaxima. Exercícios Criar interface Niquel com métodos setPeso, getPeso,setUnidade, getUnidade. Criar interface Moeda que vai herdar de Niquel e conterá os métodos qtdProduzidaValor, simboloMoeda. Criar classe Real que irá implementar interface Moeda.