Polimorfismo en Java

5,044 views

Published on

Polimorfismo en Java

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,044
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
136
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • El valor de retorno no puede diferenciar, por si solo, dos sobrecargas.
  • La implementación del ocultamiento es eficiente puesto que se resuelve en tiempo de compilación. El compilador puede determinar a quien se debe llamar de forma “segura”, es decir, es claro siempre a quien se debe de llamar. C# exige que se declare un ocultamiento utilizando “new”
  • El tipo de la variable no coincide con el tipo del objeto. El objeto referenciado puede ser de un tipo derivado, por lo que la llamada puede ser “incorrecta”. En el ejemplo mostrado, en la peníltima línea “pBase” no apunta a un objeto “Base” por lo que la llamada a “Metodo” se resuelve hacia la implementación en “Base”, cuando lo que probablemente se deseaba era que sea resuelta hacia “Derivada”, el tipo del objeto, no el de la variable.
  • La decisión de “a quien se llama” no puede resolverse durante la compilación, dado que no se conoce en dicho momento que tipo de objeto
  • Interfaz: Define el comportamiento de una clase, no su implementación.
  • Explicar: Por que Java y C# no utilizan herencia múltiple, esto es, que la herencia múltiple: Hace dificil resolver comflictos de espacios de nombres Es posible duplicidad de datos Internamente es complicado de implementar y produce código más lento
  • Explicar que: No se puede crear una instancia de la clase abstracta. Una clase abstracta puede implementar un método no abstracto. Un método abstracto debe estar dentro de una clase abstracta. Un método abstracto no debe ser implementado en la clase base, es implementado en las clases derivadas.
  • Java: Las interfaces pueden tener datos miembros constantes (final, automático). Automáticamente todos los miembros de una interfaz son públicos. C#: Las interfaces no pueden tener datos miembros. C# está orientado al desarrollo de componentes. Los componentes deben interactuar mediante una interfaz con el exterior. Esta interfaz solo la deben componer métodos, debido a : El exponer datos directamente puede modificar incorrectamente el componente y los tipos de dato pueden no ser estándar. C#: reemplaza esto con el uso de propiedades.
  • Polimorfismo en Java

    1. 1. Ricardo More Reaño JavaPolimorfismo
    2. 2. Polimorfismo Es la propiedad que indica, literalmente, la posibilidad de que una entidad tome muchas formas. En términos prácticos, el polimorfismo permite referirse a objetos de clases diferentes mediante el mismo elemento de programa y realizar la misma operación de diferentes formas, según sea el objeto que se referencia en ese momento.Tipos  Sobrecarga de funciones y métodos  Sobrescritura en la herencia  Implementación de interfaces Técnicas de Programación II Ciclo
    3. 3. Ejemplo de polimorfismo Técnicas de Programación II Ciclo
    4. 4. PolimorfismoSobrecarga Es la posibilidad de tener dos o más funciones con el mismo nombre pero funcionalidad diferente. Es decir, dos o más funciones con el mismo nombre realizan acciones diferentes. Técnicas de Programación II Ciclo
    5. 5. Ejemplo sobrecargaclass Calculadora { int suma(int x, int y) { return (x + y); } float suma(float x, float y) { return (x + y); }} Técnicas de Programación II Ciclo
    6. 6. PolimorfismoOcultamiento  Desde un objeto de la clase derivada, siempre se accede al método sobrescrito.  El método original queda “oculto”.  La decisión de “a quien llamar” se resuelve basándose en el tipo de la variable del objeto. Técnicas de Programación II Ciclo
    7. 7. Polimorfismo Ocultamiento: Problema 1 class Base { public: void Metodo( ) {cout << "Base::Metodon"; }}; class Derivada : public Base { public: void Metodo( ) {cout << "Deri::Metodon"; }}; void main() { Base ObjBase; Derivada ObjDerivada; Base* pBase; pBase = &ObjBase; pBase->Metodo( ); pBase = &ObjDerivada; pBase->Metodo( ); } Técnicas de Programación II Ciclo
    8. 8. PolimorfismoSobrescritura virtual  Desde cualquier método de la clase base o derivada o desde fuera de ellas, una llamada a un método se resuelve en base al tipo del objeto, no el de la variable. Técnicas de Programación II Ciclo
    9. 9. Polimorfismo Implementación de interfaces  Concepto de Interfaz  Definición:  Java: interfaz UnaInterfaz { void Met( ); } Técnicas de Programación II Ciclo
    10. 10. Polimorfismo Implementación de interfaces  Java: interfaz Dibujable { ... } class Texto implements Dibujable { ... }  Pueden tener herencia múltiple, reemplazando la herencia múltiple de clases. Técnicas de Programación II Ciclo
    11. 11. Polimorfismo Clases Abstractas: Problema 1using 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(); }} Técnicas de Programación II Ciclo
    12. 12. Polimorfismo Interfaz Clase abstractaDeclarar métodos  abstractosImplementar X MétodosAñadir datos X miembrosCrear objetos X XCrear arreglos,  referencias Técnicas de Programación II Ciclo
    13. 13. EjerciciosDiseñar una clase Garaje que:• En el constructor se indique el número total de plazas de garaje• En cada plaza se pueda guardar tanto un coche como una moto• Tenga una función que devuelva la cuota mensual de una plaza: -Si en dicha plaza hay un coche, la cuota se calcula como la potencia multiplicadapor el número de plazas -Si en dicha plaza hay una moto, la cuota se calcula como la potencia multiplicadapor 2 -Si no hay ningún vehículo en la plaza, la cuota es 0 Técnicas de Programación II Ciclo
    14. 14. EjerciciosSe quiere elaborar el catálogo de un museo para locual se deben modelar las siguientes entidades:a) Los artistas, de los que se quiere guardarinformación acerca de su nombre y lugar denacimiento, así como la fecha de su natalicio y de sufallecimiento. Técnicas de Programación II Ciclo
    15. 15. b) Las obras artísticas, de cada una de las cuales sedesea conocer su título, su número de inventario, suautor y el año en que la realizó. En el museo solohay dos tipos de obras: esculturas y pinturas. De lasprimeras se quiere guardar información sobre elmaterial en que fueron hechas y la altura queposeen. De las pinturas en cambio, se guardaráinformación de sus dimensiones y del soporte en quehan sido realizadas.c) El catálogo es una secuencia de obras artísticas. Técnicas de Programación II Ciclo

    ×