Orientação a Objetos Classe Abstrata Polimorfismo Gil Eduardo de Andrade O Conceito de Classe Abstrata O que é uma “Classe Abstrata”? • Uma classe abstrata serve apenas como modelo para uma classe concreta; • Como são apenas modelos não podem ser instanciadas diretamente; – Ex.: Abstrata obj = new Abstrata(); • Como não são instanciadas devem ser herdadas por classes concretas; Aula 07: Classe Abstrata – Gil Eduardo de Andrade O Conceito de Classe Abstrata Características de uma “Classe Abstrata” • Uma classe abstrata pode, ou não, conter métodos abstratos, ou seja, pode ou não implementar um método; • Contudo, métodos abstratos definidos em uma classe abstrata devem, obrigatoriamente, ser implementados em uma classe concreta; Aula 07: Classe Abstrata – Gil Eduardo de Andrade O Conceito de Classe Abstrata Objetivos de uma “Classe Abstrata” • O objetivo da criação de classes abstratas é encapsular classes com comportamento comum; • Elas podem aparecer durante a modelagem de um sistema, ou serem criadas com intuito de obter-se a reutilização do código; Aula 07: Classe Abstrata – Gil Eduardo de Andrade O Conceito de Classe Abstrata Ainda, sobre “Classe Abstrata” • Se uma subclasse de uma classe abstrata não implementar todos os seus métodos abstratos, então ela também é abstrata; • Normalmente, é aconselhável mover o máximo de funcionalidade possível para uma superclasse, seja abstrata ou não ; Aula 07: Classe Abstrata – Gil Eduardo de Andrade Implementação: Classe Abstrata “Classe Abstrata” no Java • No Java, para indicar que uma classe é abstrata, utiliza-se a palavra reservada abstract; Aula 07: Classe Abstrata – Gil Eduardo de Andrade Exemplo: Classe Abstrata Exemplo “Classe Abstrata” no Java Aula 07: Classe Abstrata – Gil Eduardo de Andrade Implementação: Classe Abstrata Exemplo “Classe Concreta” Aula 07: Classe Abstrata – Gil Eduardo de Andrade Implementação: Classe Abstrata Exemplo “Instância” Aula 07: Classe Abstrata – Gil Eduardo de Andrade Polimorfismo: Classe Abstrata “Classe Abstrata” + “Sobrecarga de Método” • Ao agregar-se os conceitos de Classe Abstrata com Sobrecarga de Métodos em subclasses distintas obtém-se o conceito de Polimorfismo; Aula 07: Classe Abstrata – Gil Eduardo de Andrade Polimorfismo: Classe Abstrata Representação Gráfica • Polimorfismo – Subclasses: Professor calculoSalario() : double ProfessorUniversidade calculoSalario() : double ProfessorInstituto calculoSalario() : double Aula 07: Classe Abstrata – Gil Eduardo de Andrade Polimorfismo: Classe Abstrata Exemplo “Polimorfismo” Aula 07: Classe Abstrata – Gil Eduardo de Andrade