Desde un punto de vista OOP, ¿hay alguna diferencia entre una clase derivada y una clase heredada? ¿O es simplemente terminología?OOP Diferencia entre una clase derivada y una clase heredada?
Respuesta
Al usar la herencia, la clase heredada se denomina clase base, y la clase heredada se denomina clase derivada .
Completamente cambiar el texto de su respuesta para reflejar la respuesta de otro usuario no se considera una buena forma aquí en SO. –
@Neil: al contrario. Editando su respuesta para que sea la mejor respuesta posible es de lo que SO se trata. Por supuesto que plagiar no es bueno, pero creo que la edición es una mejora basada en tu respuesta, no una copia descarada, especialmente porque tu respuesta fue específica de C++ (no fue necesario especificarla, pero lo hiciste) –
@Vinko Había una necesidad de hacerlo específico: diferentes idiomas usan nomenclaturas diferentes. Por ejemplo, un programador de Smalltalk hablaría de superclase y subclase en lugar de base y derivada. –
El término clase derivada se prefiere el lenguaje C++ para una clase que hereda de otra clase, que en el lenguaje C++ que se denomina una clase base de. Entonces en C++ los términos sobre los que preguntas son idénticos.
La respuesta de Neil me confundió un poco, así que revisé un poco public sources.
Considérese una clase Base y una Sub Clase (SubClass extends BaseClass
en la terminología de Java), que
- la Sub Clase deriva base de la Clase (Clase Sub es un clase derivada de Clase base) y
- Sub Clase hereda de Clase base (base de la Clase es un/el clase heredada de la clase Sub)
lo tanto, en mi opinión, tanto en términos definen la misma relación entre las clases pero desde diferentes perspectivas.
El término subclase no se usa comúnmente en C++, no sé sobre Java, y el OP no preguntó al respecto. –
Pero él no pidió C++ tampoco ... –
terminología herencia por Bertran Meyer (Object-Oriented Software Construction, p.464):
convenciones básicas y la terminología
Los siguientes términos serán útiles además de “heredero” y "padre".
A descendiente de una clase C es cualquier clase que hereda directamente o indirectamente de C, incluyendo C sí mismo. (Formalmente: o bien C o, de forma recursiva, descendiente de una heredera de C.) Un antepasado de C es una clase A tal que C es un descendiente de A .
En la literatura también se encontrará con los términos “subclase” y “superclase”, pero que se mantenga alejado de ellos, ya que son ambiguos; a veces "subclase" significa heredero (descendiente inmediato), a veces se usa en el sentido más general de descendiente apropiado , y no siempre está claro cuál. Además, veremos que la connotación "subconjunto" de esta palabra no siempre está justificada.
tal vez interesante, si se reemplaza un método, en Delphi se escribe:
inherited; // so "inherited" is the base class
en lugar de
base.BaseImplementation(); // C#
- 1. Diferencia entre una clase y un módulo
- 2. Hacer una clase no heredada
- 3. Crear una clase de propiedades extensibles (OOP)
- 4. Diferencia entre clase simple y clase estática?
- 5. Diferencia entre clase y clase <?>
- 6. ¿cuál es la diferencia entre una clase y una biblioteca?
- 7. constructor predeterminado de una clase heredada
- 8. error constructor XmlSerializer con clase derivada de una clase base
- 9. ¿Cuál es la diferencia entre una clase estática y una clase normal?
- 10. ¿Cuál es la diferencia entre una clase concreta y una clase abstracta?
- 11. Cómo serializar una clase derivada como su clase base
- 12. diferencia entre una clase y un objeto en Javascript
- 13. ¿Cuál es la diferencia entre importar y extender una clase?
- 14. Diferencia entre clase foo y clase foo (objeto) en Python
- 15. Uso de "Público" en una declaración de clase derivada?
- 16. clase derivada Protegida
- 17. OOP: buen diseño de clase
- 18. javascript oop, instanceof y clase base
- 19. Diferencia entre la clase abstracta y Rasgo
- 20. Diferencia entre clase Java y jar
- 21. Diferencia entre Private Sub, función y Clase
- 22. Diferencia entre objeto y clase en PHP?
- 23. Convertir clase base a clase derivada
- 24. ¿Cómo 'de-serializar' una clase derivada de datos serializados?
- 25. Asignar clase derivada de la clase base
- 26. declaración (clase derivada)
- 27. ¿Cómo hacer que una clase externa sea heredada de una clase interna?
- 28. Python OOP - Relaciones de clase
- 29. ¿Cómo hacer una clase COM de ATL derivada de una clase base?
- 30. ¿Puede una clase base determinar si una clase derivada ha reemplazado a un miembro virtual?
duplicado exacto de su pregunta anterior. –
@David - gracias Ok, eliminé la otra pregunta, debo haber enviado dos veces ... –