Realmente não é uma definição muito simples de entender. Por isso vamos mostrar o exemplo a seguir. Sejam as classes abaixo:
public abstract class Carro {
public String nome;
public String tipo;
}
class sedan extends Carro {
public sedan(String nome) {
this.nome = nome;
System.out.println(“Este sedan é um ” + this.nome);
}
}
class hatch extends Carro{
public hatch(String nome) {
this.nome = nome;
System.out.println(“Este veículo hatch é um ” + this.nome);
}
}
Suponha agora que o usuário deverá em tempo de execução escolher o tipo de carro que ele quer comprar. Veja a seguir.