Classes Abstratas Java
Classes abstratas tem uma função importante na orientação a objeto em Java.
De forma objetiva, 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 diretamente com o new, elas sempre devem ser herdadas por classes concretas.
Outro fato importante de classes abstratas é que elas podem conter ou não métodos abstratos, que tem a mesma definição da assinatura de método encontrada em interfaces. Ou seja, uma classe abstrata pode implementar ou não um método.
Os métodos abstratos definidos em uma classe abstrata devem obrigatoriamente ser implementados em uma classe concreta. Mas se uma classe abstrata herdar outra classe abstrata, a classe que herda não precisa implementar os métodos abstratos.
Para criarmos uma classe ou método abstrato usamos a palavra-chave abstract.
Para demonstrar, usaremos uma classe abstrata chamada Eletrodomestico, que servirá de modelo para todos os objetos que possam ser eletrodomésticos.
package classeAbstrata;
public abstract class Eletrodomestico { private boolean ligado; private int voltagem;
// métodos abstratos // /* * não possuem corpo, da mesma forma que * as assinaturas de método de uma interface */ public abstract void ligar(); public abstract void desligar();
// método construtor // /* * Classes Abstratas também podem ter métodos construtores, * porém, não podem ser usados para instanciar um objeto diretamente */ public Eletrodomestico(boolean ligado, int voltagem) { this.ligado = ligado; this.voltagem = voltagem; }
// métodos concretos /* * Uma classe abstrata pode possuir métodos não abstratos */ public void setVoltagem(int voltagem) { this.voltagem = voltagem; }
public int getVoltagem() {