2011-11-14 24 views
8

En la programación orientada a objetos, una 'clase base' es una clase de la cual se han derivado otras clases (http://en.wikipedia.org/wiki/Base_class).¿Qué es lo opuesto a una clase base en OOP?

Sin embargo, ¿qué es lo contrario de una clase base? En otras palabras, ¿qué clase es la que NO tiene llamadas secundarias?

EDIT: Estoy buscando el nombre de una clase que no ha sido sub-classed, AUN, dentro de una herencia de árbol de múltiples clases principales, comenzando con una clase base.

+3

No hay necesidad de tener un término para eso, simplemente se llama clase. – dave

+3

Hay una clara diferencia entre una clase que * no * ha sido sub-clasificada y una que * no * puede ser subclasificada. ¿A qué te refieres? –

+0

Estoy buscando el nombre de una clase que no ha sido sub-clasificada, TODAVÍA. – archmeta

Respuesta

13

Una clase base es un término relativo. Solo se aplica cuando se considera una de sus clases derivadas. Aquí hay algunos términos que considero opuestos (y en su mayoría ortogonales entre sí):

  • clase base frente a clase derivada; Del mismo modo súper clase vs clase sub
  • clase abstracta vs clase concreta
  • clase
  • raíz vs clase hoja
  • sellado (también, final) clase vs heredable (no sellado) clase
  • clase anidada vs clase de nivel superior

Las clases de raíz abstracta y (normalmente) están diseñadas para ser clases base. Las clases selladas no pueden ser ser clases base, porque no son heredables. Una clase raíz es una clase sin una clase base (en C# y Java, esta clase es Object). Una clase hoja no tiene subclase, por lo que no es una clase base; pero no necesariamente está sellado. Las clases selladas, por otro lado, son siempre clases de hojas.

Así,

Busco el nombre de una clase que no ha sido sub-clasificado, pero

Parece que usted está buscando una clase hoja, pero no considero que sea lo opuesto a una clase base.

1

En C#, se llaman clases selladas. Puede usar la palabra clave sealed para indicar que no se heredará una clase. VB utiliza la palabra clave NotInheritable. Wikipedia los llama non-subclassable.

4

Suelo escuchar la clase de hoja. Java lo impone con final.

1

I sellada clase no tiene que heredar de nada. Para mí, lo contrario de una clase base sería una clase derivada, pero ser una clase derivada no impide que se herede de ella.

Pero parece que la respuesta de Carl T. es probablemente lo que estabas buscando.

Cuestiones relacionadas