1.8 KiB
title | localeTitle |
---|---|
Abstract Classes in Java | Classes Abstratas em Java |
Vamos discutir classes abstratas. Antes de mergulhar neste tutorial, é melhor que você tenha entendido conceitos de classes e herança.
Classes abstratas são classes que podem ser herdadas (isto é, estendidas), mas não podem ser instanciadas. Você pode pensar neles como uma versão de classe de interfaces ou como uma interface com código real anexado aos métodos.
Considere o seguinte exemplo para entender classes abstratas: Você tem uma classe Veículo que define certas funcionalidades básicas (métodos) e certos componentes (variáveis de objeto) que uma máquina deve ter, para ser classificada como veículo. Você não pode criar um objeto de tipo Veículo porque um veículo em si é um conceito abstrato. No entanto, você pode estender a funcionalidade da classe de veículo para criar um carro ou uma motocicleta.
abstract class Veiculo {
// variável usada para declarar o não. de rodas em um veículo
private int rodas;
// Variável para definir o tipo de motor
private Motor motor;
// um método abstrato que apenas declara, mas não define o mecanismo de partida
// funcionalidade porque cada veículo usa um mecanismo de partida diferente
abstract void start ();
}
public class Carro extends Veiculo
{
...
}
public class Motocicleta extends Veiculo
{
...
}
Você não pode criar um objeto usando a classe Veiculo. Porém, você pode extender a classe Veiculo, e, então, criar um objeto desta classe que extendeu Veiculo.
Veiculo veiculo = new Veiculo (); // Inválido
Veiculo carro = new Carro(); // válido
Veiculo mBike = new Motocicleta (); // válido
Carro carro = new Carro(); // válido
Motocicleta mBikeObj = new Motocicleta(); // válido