Preguntas etiquetadas con inheritance

La herencia es una forma de reutilizar el código de los objetos existentes, o establecer un subtipo de un objeto existente, o ambos, dependiendo del soporte del lenguaje de programación.

5
¿Cómo definir que un método puede ser anulado es un compromiso más fuerte que definir que un método puede ser llamado?
De: http://www.artima.com/lejava/articles/designprinciples4.html Erich Gamma: Sigo pensando que es verdad incluso después de diez años. La herencia es una forma genial de cambiar el comportamiento. Pero sabemos que es frágil, porque la subclase puede hacer fácilmente suposiciones sobre el contexto en el que se llama a un método que anula. Hay …




5
¿Son los mixins de Python un antipatrón?
Soy plenamente consciente de que pylintotras herramientas de análisis estático no lo saben todo y, a veces, sus consejos deben ser desobedecidos. (Esto se aplica a varias clases de mensajes, no solo conventions.) Si tengo clases como class related_methods(): def a_method(self): self.stack.function(self.my_var) class more_methods(): def b_method(self): self.otherfunc() class implement_methods(related_methods, more_methods): …

10
¿Está bien tener objetos que se emitan, incluso si contamina la API de sus subclases?
Tengo una clase base, Base. Tiene dos subclases Sub1y Sub2. Cada subclase tiene algunos métodos adicionales. Por ejemplo, Sub1tiene Sandwich makeASandwich(Ingredients... ingredients)y Sub2tiene boolean contactAliens(Frequency onFrequency). Dado que estos métodos toman parámetros diferentes y hacen cosas completamente diferentes, son completamente incompatibles, y no puedo usar el polimorfismo para resolver este …

7
¿Por qué los constructores no se heredan?
Estoy confundido sobre cuáles podrían ser los problemas si un constructor fuera heredado de una clase base. Cpp Primer Plus dice: Los constructores son diferentes de otros métodos de clase en que crean nuevos objetos, mientras que otros métodos son invocados por objetos existentes . Esta es una razón por …
33 c++  inheritance 

10
¿Es “Parent x = new Child ();” en lugar de “Child x = new Child ();” una mala práctica si podemos usar el último?
Por ejemplo, había visto algunos códigos que crean un fragmento como este: Fragment myFragment=new MyFragment(); que declara una variable como Fragment en lugar de MyFragment, que MyFragment es una clase secundaria de Fragment. No estoy satisfecho con esta línea de códigos porque creo que este código debería ser: MyFragment myFragment=new …


7
¿Debo probar los métodos heredados?
Supongamos que tengo un Administrador de clase derivado de un Empleado de clase base , y ese Empleado tiene un método getEmail () que hereda el Administrador . ¿Debo probar que el comportamiento del método getEmail () de un gerente es, de hecho, el mismo que el de un empleado? …




3
El mejor diseño para formularios de Windows que compartirán una funcionalidad común
En el pasado, he usado la herencia para permitir la extensión de formularios de Windows en mi aplicación. Si todos mis formularios tuvieran controles, ilustraciones y funcionalidad comunes, crearía un formulario base que implementara los controles y la funcionalidad comunes y luego permitiría que otros controles heredaran de ese formulario …

3
¿Cómo el fortalecimiento de las condiciones previas y el debilitamiento de las condiciones posteriores violan el principio de sustitución de Liskov?
Leí que el principio de sustitución de Liskov se viola si: Las condiciones previas se fortalecen, o Las condiciones posteriores se debilitan Pero todavía no entiendo completamente cómo estos dos puntos violarían el principio de sustitución de Liskov. ¿Puede alguien explicarme con un ejemplo? Específicamente, ¿cómo una de las condiciones …

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.