Más sobre herencia y polimorfismo Por: Yolanda Martínez Treviño ¿Cuándo una clase debe ser concreta? Al trabajar con herencia la clase padre puede o no ser abstracta Si se pueden definir objetos de la clase padre y también de la clase hijo entonces la clase padre debe ser concreta. Ejemplo: Clase Triángulo (clase Base) Clase Rectángulo (clase Derivada) Clase Isóceles (clase Derivada) Redefinición de Métodos cuando la clase padre es concreta ¿Qué pasa si en la subclase necesito que un método que estoy heredando se comporte de manera diferente de como funciona en la clase base? Se puede redefinir un método: En la clase base agrega la palabra virtual al encabezado del método. En la subclase agrega la palabra override al encabezado del método. ¿Cuando una clase debe ser abstracta? Si no tiene sentido definir objetos de la clase padre y además hay métodos abstractos en la clase padre entonces la clase padre debe ser abstracta. Ejemplos: Clase Figura(clase Base) Clase Rectángulo (clase Derivada) Clase Triángulo(clase Derivada) Clase Animal (clase Base) Clase Perro (clase Derivada) Clase Gato (clase Derivada) Redefinición de Métodos cuando la clase padre es abstracta Si la clase padre es abstracta, debe contener métodos abstractos, que no están definidos (se coloca solamente el encabezado seguido de ; ). Las clases derivadas están obligadas a redefinir los métodos abstractos de su clase base. Se utiliza la palabra override en el encabezado del método que se está redefiniendo.