Amigo, só complementando a resposta do nosso amigo colaborador Leonardo, quando você tem uma classe do tipo abstract você não pode instanciar ela diretamente como o Leonardo informou.
Veja bem:
Nesse caso seria mais ideal que uma Classe Conta seja abstract, porquê quando você for instanciar (criar) o objeto você não pode criar ela diretamente, ou seja, você precisa instruir de qual tipo aquela Conta é, vamos para a prática para ficar claro:
public abstract class Conta {
...// métodos e atributos
}
Essa é a Classe Conta, você não pode chegar em uma outra classe e fazer:
public class TesteConta {
public static void main (String[] args) {
Conta conta = new Conta();
}
}
Essa classe TesteConta não vai compilar, porquê a classe Conta é abstract, agora se você tem uma classe Conta Corrente usando um Extends de Conta, e tentar instanciar, ela vai funcionar:
public class ContaCorrente extends Conta {
..// métodos e atributos..
}
public class TesteConta {
public static void main (String[] args) {
Conta cc = new ContaCorrente();
}
}
Entendido? Espero que sim. Bons estudos!