3.5 Sobrescritura de Métodos

El término sobre escritura de funciones o métodos es comúnmente usado en la herencia de la POO, consiste en instanciar en una clase base algún(os) método(s) los cuales serán sobreescritos en la(s) clase(s) derivadas (derivación inmediata o no) con el mismo nombre del método usado en la clase base, de esta forma el método llamado dependerá del tipo del objeto que llame al método (el cual es llamado IGUAL y recibe LOS MISMOS PARÁMETROS y DEL MISMO TIPO), es importante resaltar que estos métodos sobreescritos pertenecen a la interfaz de ambas clases y el método en la clase derivada sobreescribe al de la clase base.

Ejemplo:


class Punto
{
       //..... atributos y otros métodos miembros
       public:
         void imprimir(){cout<<"llamada a clase base punto "} //método imprimir        //clase base
};

class circulo : public Punto //clase circulo hereda de Punto
{
          //..... atributos y otros métodos miembros
          public:
               void imprimir(){cout<<"llamada a clase derivada circulo "}
         //método sobreescrito en clase derivada
};


Se observa que en la clase derivada circulo el método imprimir se escribe igual que en su clase base recibe el mismo numero y tipo de parámetros y retorna lo mismo por lo tanto en la clase derivada se esta sobreescribiendo la implementación de la función imprimir de la clase base si en el programa principal.

 

Una subclase hereda todos los métodos de su superclase que son accesibles a dicha subclase a menos que la subclase sobreescriba los métodos.

Una subclase sobreescribe un método de su superclase cuando define un método con las mismas características ( nombre, número y tipo de argumentos) que el método de la superclase.

Las subclases emplean la sobreescritura de métodos la mayoría de las veces para agregar o modificar la funcionalidad del método heredado de la clase padre.