Clases abstractas e interfaces

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Advertisements

Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Lenguaje de programación Java
Rosalía Laza Fidalgo Reyes Pavón Rial Curso
Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos.
Herencia e Interfaces.
Java. Objeto Es la instancia de una clase. Cada objeto se crea utilizando la palabra reservada new. Un objeto es conocido como una instancia. Ejemplo.
Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.
Tema 10: Interfaces Antonio J. Sierra.
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
Programación Orientada a Objetos
Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009.
Interfaces ELO329: Diseño y Programación Orientados a Objetos.
Unidad 2.1: INTRODUCCIÓN A LA ORIENTACIÓN A OBJETOS.
Arreglos de Objetos.
Detalles Generales sobre Java
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
HERENCIA.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Herencia.
Curso de nivelación Primer parte. Conceptos generales del lenguaje.
Programación Orientada a Objetos Unidad III – Programación Orientada a Objetos en Java Programación I
Interfaces y Clases Internas ELO329: Diseño y Programación Orientados a Objetos.
PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento y constructores.
PROGRAMACIÓN ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
Unidad Didáctica 11 Reutilización Versión 1.0.0
Clases y Objetos.
Herencia y Clases Abstractas Reutilización de código y código genérico
Taller de Java Universidad de los Andes
Polimorfismo de ‘tipo’ (en la herencia)
Programación Orientada a Objetos
Ingeniería Directa. Generar código a través de modelos se le conoce como ingeniería directa.
Programación Avanzada
Clases y Objetos.
Herencia y Clases Abstractas
Diseño y Programación Orientada a Objetos
Herencia Implementación en Java.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Programación Orientada a Objetos
EL MUNDO DE LOS OBJETOS PROGRAMANDO EN JAVA.
Figura Rectangulo Elipse Cuadrado Circulo area (): double
Fundamentos de la programación orientada a objetos
ELO329: Diseño y Programación Orientados a Objetos
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Medio de tele-comunicación
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Programación orientada a objetos
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
IPOO 2 cuatrimestre 2017 Departamento de Ciencias e Ingeniería
Diseño y Programación Orientada a Objetos
Sonia Rueda Herencia y Polimorfismo
Polimorfismo y Métodos Virtuales
Programación Orientada a Objetos I Unidad 4 Relaciones entre clases: herencia.
Interfaces Gráficas de Usuario
Herencia en C#.
Desarrollo de Software
HERENCIA.
ELO329: Diseño y Programación Orientados a Objetos
ELO329: Diseño y Programación Orientados a Objetos
INGENIERIA EN SISTEMAS COMPUTACIONALES
Interfaces Gráficas de Usuario
Diagrama de Clases Un diagrama de clases esta compuesto por los siguientes elementos: Clase: atributos, métodos y visibilidad. Relaciones: Herencia, Composición,
Tópicos Avanzados de Programación (TAP3501)
Funciones y Clases Amigas (Friend)‏ Miembros Estáticos (Static)
ELO329: Diseño y Programación Orientados a Objetos
Tema 5 H erencia. La herencia es una forma de reutilización de software en la que las clases se crean incorporando los datos (atributos) y el comportamiento.
Transcripción de la presentación:

Clases abstractas e interfaces Programación y Estructura de Datos Clases abstractas e interfaces Polimorfismo Ing. Roberto Martínez Román - rmroman@itesm.mx

Ing. Roberto Martínez Román - rmroman@itesm.mx Clases abstractas Para declarar un método abstracto en una clase, agrega el modificador abstract y reemplaza el cuerpo del método con ; public abstract void leer(); public abstract String generarPago(); Agregue a la clase el modificador abstract. Ing. Roberto Martínez Román - rmroman@itesm.mx

Ing. Roberto Martínez Román - rmroman@itesm.mx Clases abstractas Tome en cuenta lo siguiente: Las subclases de una clase abstracta, deben sobreescribir todos los métodos abstractos de la superclase (si no, deben declararse abstractas) No se pueden crear instancias de una clase abstracta. Proporciona recursos para la subclase y declaración de métodos que pueden ser usados por el polimorfismo. Ing. Roberto Martínez Román - rmroman@itesm.mx

La clase abstracta Animal public abstract class Animal // NO se puede instanciar { protected String comida; private int hambre; // [0, 5], 0 no tiene hambre public Animal(String comida, int hambre) { this.comida = comida; this.hambre = hambre; } public abstract void hablar(); // Obliga a la subclase a sobrescribir este método public void comer() { if (hambre>0) { hambre--; } } Ing. Roberto Martínez Román - rmroman@itesm.mx

Ing. Roberto Martínez Román - rmroman@itesm.mx Interfaces Las interfaces, son como clases abstractas puras. Contiene únicamente datos estáticos constantes y métodos abstractos públicos. Una clase 'implementa' una interface, más que extenderla. Decimos que la clase implementa la interface si sobrescribe todos los métodos definidos en esta última. Ing. Roberto Martínez Román - rmroman@itesm.mx

Equivalencia de clases e interfaces public abstract class ClaseAbstr { public static final int M=10; public abstract void a(); } public interface Equivalente int M=10; void a(); Una clase abstracta pura. No hay variables de instancia y sólo hay métodos abstractos. Una interface define SOLO datos estáticos constantes públicos y métodos abstractos públicos. Ing. Roberto Martínez Román - rmroman@itesm.mx

Implementado interfaces public abstract class ClaseAbstr { public static final int M=10; public abstract void a(); } public interface Equivalente public class A extends ClaseAbstr public void a() { ... } public class B implements Equivalente Ing. Roberto Martínez Román - rmroman@itesm.mx

Diagrama UML para interfaces Ing. Roberto Martínez Román - rmroman@itesm.mx

Ing. Roberto Martínez Román - rmroman@itesm.mx Interfaces Podemos declarar referencias del tipo de la interface (pero nunca crear objetos de ella) y asignar objetos de las clases que la implementan, con esto logramos el polimorfismo. FormaGeometrica figura; figura = new Forma2D(); figura.area(); // polimorfismo figura = new Forma3D(); Ing. Roberto Martínez Román - rmroman@itesm.mx

Jerarquías de clases e interfaces Las interfaces extienden interfaces, las clases extienden clases y las clases implementan interfaces public interface A { … } public interface B extends A public class C implements A, B // Obligado a sobrescribir // los métodos de A y B public class D extends C public class E extends D implements A, B Ing. Roberto Martínez Román - rmroman@itesm.mx

Jerarquías de clases e interfaces Las clases pueden implementar múltiples interfaces, pero sólo pueden heredar de una clase. Boton Oprimible Dibujable BotonMenu Ing. Roberto Martínez Román - rmroman@itesm.mx

Ing. Roberto Martínez Román - rmroman@itesm.mx Clases e interfaces La superclase define lo que es la subclase. La interface define lo que puede hacer (el rol que juega) la subclase. public class JuegoAhorcado extends JFrame implements ActionListener { } public class Moneda extends Item implements Recolectable Ing. Roberto Martínez Román - rmroman@itesm.mx

Ing. Roberto Martínez Román - rmroman@itesm.mx Tarea Terminar el ejercicio iniciado en clase (Figura, IFigura, Circulo): Agregar: Triángulo Rectángulo Implementar una interfaz gráfica que permita: Agregar una figura de los tres tipos Mover TODAS las figuras al mismo tiempo Escalar todas las figuras al mismo tiempo Ing. Roberto Martínez Román - rmroman@itesm.mx

Segunda parte de la práctica sobre Cuentas de Banco Agrega a la clase de prueba PruebaCuentas, los siguientes métodos para procesar cuentas: mostrarDatos. Imprime el saldo de la cuenta que llega como parámetro. private static void mostrarDatos(CuentaBanco cuenta){} hacerCorteMensual. Actualiza la cuenta que llega como parámetro, agregando los intereses ganados o cobrando la comisión por las operaciones efectuadas. private static void hacerCorteMensual(CuentaBanco cuenta){} Ing. Roberto Martínez Román - rmroman@itesm.mx

Ejercicio. Implementa el siguiente diagrama. Ing. Roberto Martínez Román - rmroman@itesm.mx