2011-11-14 11 views
8

Nella programmazione orientata agli oggetti, una 'classe base' è una classe da cui sono state derivate altre classi (http://en.wikipedia.org/wiki/Base_class).Qual è l'opposto di una classe base in OOP?

Tuttavia, qual è l'opposto di una classe base? Nelle parole di ordine, qual è una classe che NON ha chiamate classi secondarie?

EDIT: Sto cercando il nome di una classe che non è stata sottoclassificata, ANCORA, all'interno di un'eredità di albero di più classi genitore, a partire da una classe base.

+3

Non c'è bisogno di avere un termine per questo, si chiama semplicemente una classe. – dave

+3

C'è una netta differenza tra una classe che * non è * stata sottoclassificata e una che * non può * essere sottoclasse. Che intendi? –

+0

Sto cercando il nome di una classe che non è stata sottoclassificata, ANCORA. – archmeta

risposta

13

Una classe base è una relativa. Si applica solo quando si considera una delle sue classi derivate. Ecco alcuni termini che considero opposti (e per lo più ortogonali tra loro):

  • classe base vs classe derivata; Classe simile super-vs classe sub
  • classe astratta vs classe concreta
  • classe
  • radice vs classe foglia
  • sigillato (anche, finale) Classe vs ereditabile (non sigillato) Classe
  • classe annidata vs classe di primo livello

Le classi radice astratte e (normalmente) sono progettate per essere classi base. Le classi sigillate non possono essere essere classi di base, perché non sono ereditabili. Una classe root è una classe senza una classe base (in C# e Java, questa classe è Object). Una classe foglia non ha sottoclassi, quindi non è una classe base; ma non è necessariamente sigillato. Classi sigillate, d'altra parte, sono sempre classi foglia.

Quindi,

Sto cercando il nome di una classe che non è stato sub-classificati, ANCORA

Sembra che siete in cerca di una classe foglia, ma non considero il contrario di una classe base.

1

In C#, queste sono chiamate classi sigillate. È possibile utilizzare la parola chiave sealed per indicare che una classe non deve essere ereditata da. VB utilizza la parola chiave NotInheritable. Wikipedia li chiama non-subclassable.

4

Di solito ascolto la classe delle foglie. Java lo applica con final.

1

ho sigillato classe non deve ereditare da qualsiasi cosa. Per me l'opposto di una classe base sarebbe una classe derivata, ma essere una classe derivata non impedisce che venga ereditata da essa.

Ma sembra che la risposta di Carl T. sia probabilmente quello che stavi cercando.

Problemi correlati