POLIFORFISMO 2

Description

Prescripción y apunte de poliformismo
alanovich2010
Note by alanovich2010, updated more than 1 year ago
alanovich2010
Created by alanovich2010 almost 8 years ago
17
0

Resource summary

Page 1

El polimorfismo indica que una variable pasada o esperada puede adoptar múltiples formas. La capacidad de un programa de trabajar con más de un tipo de objeto1) se refiere a que se puede trabajar con un objeto de una clase sin importar de qué clase se trata, se trabajará igual sea cual sea la clase a la que pertenece el objeto. 2) suele referirse a la posibilidad de declarar métodos con el mismo nombre que pueden tener diferentes argumentos dentro de una misma clase. la herencia se ha utilizado solamente para heredar los miembros de una clase base, pero también existe la posibilidad de que un método de una clase derivadaclass disco{ protected: int capacidad; char * fabricante; int num_serie; public: disco (int c, char * f, int n){ capacidad = c; strcpy(fabricante, f); num_serie=n;} void imprimir_capacidad(){ cout << capacidad; } void imprimir_fabricante(){ cout << fabricante; } void imprimir_num_serie(){ cout << num_serie; } }; class disco_musica : public disco{ private: char * tipo; //CD,vinilo, mini-disc, etc. cancion * lista_canciones;//Suponemos la //existencia de una clase “cancion”. public: disco_musica (int c, char* f, int n, char* t) : disco (c,f,n){ strcpy(tipo,t); lista_canciones=NULL;} };

Page 2

Podemos redefinir el métodovoid imprimir_fabricante(){ cout << “Este disco de musica ha sido grabado por: ” << fabricante; } //fabricante ha de ser protected!Si tenemos:void main(){ disco_musica d1(32,“EMI”,423,“CD”); disco * ptr = & d1; d1.imprimir_fabricante(); //Invoca al de la clase derivada. ptr -> imprimir_fabricante(); //Invoca al de la clase base. } se invoca un método de un objeto de la clase derivada mediante un puntero, si el objeto de la clase disco_musica se trata como un objeto de la clase disco, se quiere seguir conservando el comportamiento de la clase disco_musica. Para ello se utiliza la palabra reservada virtual, si se quiere que el comportamiento de un método de la clase disco desaparezca se ha de declarar el método como virtual. tomemos la clase disco_musica que hereda de la clase base disco: class disco{ protected: int capacidad; char * fabricante; int num_serie; public: disco (int c, char * f, int n){ capacidad = c; strcpy(fabricante, f); num_serie=n;}void imprimir_capacidad(){cout << capacidad; } void imprimir_fabricante(){ cout << fabricante; } void imprimir_num_serie(){ cout << num_serie; } };

Page 3

class disco_musica : public disco{ private: char * tipo; //CD,vinilo, mini-disc, etc. cancion * lista_canciones;//Suponemos la //existencia de una clase “cancion”. public: disco_musica (int c, char* f, int n, char* t) : disco (c,f,n){ strcpy(tipo,t); lista_canciones=NULL;} };si el objeto de la clase disco_musica se trata como un objeto de la clase disco, se quiere seguir conservando el comportamiento de la clase disco_musica. Para ello se utiliza la palabra reservada virtual, Clase virtual pur Para ello existen lo que suele llamarse en POO clases abstractas. Esta clase define el interfaz que debe tener una clase y todas las clases que heredan de ella. En C++ el concepto de clases abstractas se implementa mediante funciones virtuales puras. Estas funciones se declaran igual que cualquier otra función anteponiendo la palabra virtual y añadiendo al final de la declaración =0. Para estas funciones no se proporciona implementación. En C++ la clase abstracta debe tener uno o más métodos virtuales puros.Dada una clase abstracta, no se pueden crear objetos de esa clase base. Se pueden crear punteros que a objetos de la clase base abstracta que realmente apunten a objetos de la clase derivada.

Show full summary Hide full summary

Similar

Diapositivas de Diseño gráfico, evolución y tendencias
Samantha Molina Vega
Diseño gráfico, evolución y tendencias - APUNTE
escandoncb
Diseño gráfico, evolución y tendencias
Samantha Molina Vega
PRESENTACIÓN EN GOCONR
weownthenigh
Eliminacion de un nodo
LUIS FERNANDO RUIZ GARCIA
test de Diseño gráfico, evolución y tendencias
Samantha Molina Vega
Notación algoritmica
Jenni' Burbujeante
factores culturales que afectan las operaciones de los negocios internacionales
JOHANA HERNANDEZ
EL LIBRO Y SUS PARTES
A14N 3URT0N
Técnicas de recopilación.
onlyhyuk8
Diapositivas de Correcion y edicion de fotografia
efrainska