Skip to main content

O que é a classe base?

Uma classe base, também chamada de superclasse, é um objeto de computador que atua como base para uma ou mais classes derivadas. Qualquer linguagem de computador capaz de herança pode criar uma classe base. Dependendo do tipo preciso, as classes base podem ou não ser capazes de inicializar - atribuindo um valor inicial a um objeto - por conta própria, mas sempre fornecem algum tipo de funcionalidade comum a qualquer classe que herda delas. Nunca há um limite para o número de classes derivadas, ou subclasses, que as classes base podem ter, mas pode haver um limite, dependendo da linguagem do computador, para o número de classes base que uma classe derivada pode ter. Diz-se que os idiomas que permitem que uma classe derivada tenha apenas uma base reforçam a herança única, enquanto os que permitem que uma classe derivada tenha várias classes base usam herança múltipla.

As classes básicas de concreto podem ser inicializadas por conta própria; isto é, um objeto do tipo de classe base pode ser criado. Se um exemplo de classe for uma base para um exemplo2 de classe derivada, um objeto do tipo Exemplo2 e um objeto do tipo Exemplo poderão ser criados. Um objeto do tipo Exemplo só pode ser criado chamando explicitamente esse tipo de objeto; criar um objeto do tipo Example2 não cria um objeto secundário do tipo example. Em cada caso, o tipo de objeto que está sendo criado cria apenas uma instância de si mesmo.

As classes base abstratas, por outro lado, não podem ser inicializadas por si próprias, o que significa que um objeto da classe base não pode ser criado por si só. Se uma classe Example3 for uma base abstrata para uma classe derivada Example4, somente um objeto do tipo Example4 poderá ser criado. Embora o tipo Example4 inclua dados do tipo example3, a tentativa de criar um objeto exclusivamente do tipo example3 resultará em um erro. Essa funcionalidade pode ser útil às vezes, principalmente se a classe Exemplo3 contiver dados particulares que devem ser rigorosamente regulamentados.

Dependendo do idioma em que aparece, uma classe base pode ter comportamentos ligeiramente diferentes e nomes marcadamente diferentes. No Java®, as classes base são sempre referidas por esse nome, enquanto no C ++, dependendo de sua estrutura, elas podem ser chamadas de classes virtuais. As diferenças de nome e funcionalidade, embora significativas em termos das linguagens de computador que estão sendo usadas, não implicam grandes diferenças no princípio por trás das classes. Uma classe base é sempre usada para encapsular funcionalidades e dados comuns para suas classes derivadas, independentemente do idioma.