Вы находитесь на странице: 1из 15

Ricardo More Reao

Java

Polimorfismo

Polimorfismo
Es la propiedad que indica, literalmente, la posibilidad de que una entidad tome muchas formas. En trminos prcticos, el polimorfismo permite referirse a objetos de clases diferentes mediante el mismo elemento de programa y realizar la misma operacin de diferentes formas, segn sea el objeto que se referencia en ese momento.

Tipos

Sobrecarga de funciones y mtodos Sobrescritura en la herencia Implementacin de interfaces


Tcnicas de Programacin II Ciclo

Ejemplo de polimorfismo

Tcnicas de Programacin II Ciclo

Polimorfismo
Sobrecarga Es la posibilidad de tener dos o ms funciones con el mismo nombre pero funcionalidad diferente. Es decir, dos o ms funciones con el mismo nombre realizan acciones diferentes.

Tcnicas de Programacin II Ciclo

Ejemplo sobrecarga

class Calculadora { int suma(int x, int y) { return (x + y); } float suma(float x, float y) { return (x + y); } }

Tcnicas de Programacin II Ciclo

Polimorfismo

Ocultamiento

Desde un objeto de la clase derivada, siempre se accede al mtodo sobrescrito. El mtodo original queda oculto. La decisin de a quien llamar se resuelve basndose en el tipo de la variable del objeto.

Tcnicas de Programacin II Ciclo

Polimorfismo

Ocultamiento: Problema 1
class Base { public: void Metodo( ) {cout << "Base::Metodo\n"; }}; class Derivada : public Base { public: void Metodo( ) {cout << "Deri::Metodo\n"; }}; void main() { Base ObjBase; Derivada ObjDerivada; Base* pBase; pBase = &ObjBase; pBase->Metodo( ); pBase = &ObjDerivada; pBase->Metodo( ); }

Tcnicas de Programacin II Ciclo

Polimorfismo

Sobrescritura virtual

Desde cualquier mtodo de la clase base o derivada o desde fuera de ellas, una llamada a un mtodo se resuelve en base al tipo del objeto, no el de la variable.

Tcnicas de Programacin II Ciclo

Polimorfismo

Implementacin de interfaces
Concepto de Interfaz Definicin:

Java:
interfaz UnaInterfaz { void Met( ); }
Tcnicas de Programacin II Ciclo

Polimorfismo

Implementacin de interfaces Java:


interfaz Dibujable { ... } class Texto implements Dibujable { ... }

Pueden tener herencia mltiple, reemplazando la herencia mltiple de clases.

Tcnicas de Programacin II Ciclo

Polimorfismo

Clases Abstractas: Problema 1

using System; abstract class Base{ public void imprimir() {Console.WriteLine("Imprimir: Clase Base");} abstract public void metodo(); } class Derivada : Base{ new public void imprimir(){Console.WriteLine("Imprimir: Clase Derivada");} override public void metodo(){Console.WriteLine("Metodo: Clase Derivada");} } class MainClass{ public static void Main(string[] args){ Base objbase ;//= new Base(); Derivada derivada = new Derivada(); objbase = derivada; objbase.imprimir(); objBase.metodo(); derivada.imprimir();derivada.metodo(); } }

Tcnicas de Programacin II Ciclo

Polimorfismo

Interfaz Declarar mtodos abstractos Implementar Mtodos Aadir datos miembros Crear objetos Crear arreglos, referencias X X X

Clase abstracta X

Tcnicas de Programacin II Ciclo

Ejercicios

Disear una clase Garaje que: En el constructor se indique el nmero total de plazas de garaje En cada plaza se pueda guardar tanto un coche como una moto Tenga una funcin que devuelva la cuota mensual de una plaza: -Si en dicha plaza hay un coche, la cuota se calcula como la potencia multiplicada por el nmero de plazas -Si en dicha plaza hay una moto, la cuota se calcula como la potencia multiplicada por 2 -Si no hay ningn vehculo en la plaza, la cuota es 0

Tcnicas de Programacin II Ciclo

Ejercicios

Se quiere elaborar el catlogo de un museo para lo cual se deben modelar las siguientes entidades: a) Los artistas, de los que se quiere guardar informacin acerca de su nombre y lugar de nacimiento, as como la fecha de su natalicio y de su fallecimiento.

Tcnicas de Programacin II Ciclo

b) Las obras artsticas, de cada una de las cuales se desea conocer su ttulo, su nmero de inventario, su autor y el ao en que la realiz. En el museo solo hay dos tipos de obras: esculturas y pinturas. De las primeras se quiere guardar informacin sobre el material en que fueron hechas y la altura que poseen. De las pinturas en cambio, se guardar informacin de sus dimensiones y del soporte en que han sido realizadas. c) El catlogo es una secuencia de obras artsticas.

Tcnicas de Programacin II Ciclo

Вам также может понравиться