lunes, 11 de julio de 2011

Herencia y Polimorfismo


Herencia
Una herencia es el mecanismo que nos permite compartir características(metodos y atributos) similares entre las clases. Es donde una clase padre hereda características a la clase hija (pueden ser todas o algunas).
Existen dos tipos de herencias: La herencia simple y la herencia multiple.
  • La herencia simple puede tener solo una clase padre
  • La herencia multiple puede tener varias clases padres
Aqui les muestro un ejemplo de codigo de herencia que obtuve de internet
class Persona
 {
    private:
      char * nif;
      int  edad;
      char * nombre, *apellidos;
   public:
      Persona(char * , int = 0,  char *, char * );
      Persona & operator=( Persona &);
      ~Persona();               // Destructor
      void medad(int);
      void mnombre(char *);
      char * mnombre() ;
void mostrar() ;
char * nombreCompleto() ;
void felizCumple();            // El día del cumpleaños
void leer();      // Lectura de los datos de la persona
};

Class  Alumno : public Persona
    {
    private:
      int  curso;
   public:
      Alumno(char * , int = 0,  char *, char * , int );
      Alumno& operator=( Alumno &);
      ~Alumno ();                                // Destructor
      int mcurso ();
void mcurso (int );
};

Para mi programa no utilizare herencia ya que la clase principal no heredara ningun atributo o método con las otras clases. Las clases son completamente diferentes y no se podrían definir como clases hijas. 
Tecla NO es un tipo de Piano
Partitura NO es un tipo de Piano
Por lo que en este programa no se puede utilizar herencia

Polimorfismo
Polimorfismo es la capacidad que tienen las clases para que una serie de clases derivadas utilicen el mismo método para realizar una función especifica
Existen dos tipos de polimorfismo:
  • Polimorfismo Dinámico: En esta forma de polimorfismo no es especifica el tipo de datos con el que se trabaja
  • Polimorfismo Estático: Es en el que tienen que ser declarados especificamente los tipos de datos que se van a utilizar.
Aqui les muestro un ejemplo de codigo de polimorfismo que encontre en internet


public abstract class figura {
protected String nombre; 
protected int color; 
protected int grosorBorde; 

public String getNombre(){ 
return this.nombre; 
public void setNombre(String n){ 
this.nombre=n; 
public int getColor(){ 
return this.color; 
public void setColor(int c){ 
this.color=c; 
public int getGrosorBorde(){ 
return this.grosorBorde; 
public void setGrosorBorde(int g){ 
this.grosorBorde=g; 
public abstract void dibujar(); 
}


Para la ejecucion de mi programa tampoco utilizare polimorfismo ya que ninguna de las clases comparten metodos similares.

Referencias

No hay comentarios:

Publicar un comentario