? Classes Java definem objetos para realizar tarefas de aplicação. Dentro de projetos Java , os programadores definir esses objetos através da criação de declarações de classe . A declaração de classe descreve as propriedades de todas as instâncias de objetos da classe terá, assim como os métodos que irá implementar. Na maioria dos casos, os programas Java podem criar objetos de quaisquer classes com declarações de classe descritas . No entanto, se uma classe é abstrata , não pode ser instanciado . Implementação
Normalmente, quando um programa contém uma declaração de classe , outro código pode criar instâncias de objetos da classe delineados dentro dele. Quando isso acontece, o objeto resultante vai conter os dados e implementar os métodos listados dentro da declaração da classe. Quando um programa declara uma classe como abstrata , isso não pode acontecer , como objetos da classe não pode ser criado . O código a seguir exemplo demonstra declarar uma classe como abstrata: .
Public abstract class GreatHelper
contrário com classes não abstratas , o projeto no qual esse código aparece não pode criar " GreatHelper " instâncias de objetos
Herança
Embora os programas não pode instanciar classes abstratas , eles podem estendê-los . Herança Java permite aos programadores estender declarações de classe existentes usando a seguinte sintaxe :
public class SpecificHelper estende GreatHelper
Quando uma classe estende outra classe, que herda os métodos e propriedades da classe pai. Estendendo as classes também pode fornecer funcionalidade adicional no topo das variáveis e métodos da superclasse herdadas. A herança é , portanto, uma forma de proporcionar funcionalidades especializadas , com subclasses especializadas dentro de uma área de responsabilidade coberto de forma mais geral pela classe pai . Com uma classe abstrata, este princípio de herança também se aplica , de modo subclasses de classes abstratas pode ser instanciado , embora seu pai não pode.
Finalidade
Classes abstratas permitir que os programadores para criar definições de conjuntos de objetos que terão algumas propriedades comuns, mas também algumas diferenças. Classes abstratas normalmente implementar apenas parcialmente as suas responsabilidades , enquanto suas subclasses pode fornecer uma implementação mais detalhada adequado às circunstâncias específicas. Classes abstratas podem conter métodos abstratos e não abstratos. Métodos abstratos só pode aparecer dentro de classes abstratas , com o requisito de que subclasses irá implementar esses métodos , a menos que eles também são abstratos .
Alternativas
A principal alternativa para criar abstrato classes em Java é a criação de interfaces. Quando um programa inclui uma interface, declarações de classe pode implementar essa interface, em vez de estendê-lo , como no caso de uma classe abstrata . Um funções de interface , como um contrato, que define os métodos que a implementação de classes deve fornecer , mas sem fornecer qualquer detalhes de implementação em si . Uma interface pode listar métodos utilizando apenas seus contornos , com a implementação de classes que fornecem os detalhes do método. O seguinte código de exemplo demonstra uma declaração de classe implementar uma interface :
public class SomeHelper estende HelpfulOrganizer
Dentro da declaração de interface , método contornos podem aparecer da seguinte forma :
GetWords corda público ();
Ao contrário de classes abstratas, interfaces não podem fornecer quaisquer detalhes de implementação
.