Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Clases abstractas e interfaces
Programación y Estructura de Datos Clases abstractas e interfaces Polimorfismo Ing. Roberto Martínez Román -
2
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 -
3
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 -
4
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 -
5
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 -
6
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 -
7
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 -
8
Diagrama UML para interfaces
Ing. Roberto Martínez Román -
9
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 -
10
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 -
11
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 -
12
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 -
13
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 -
14
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 -
15
Ejercicio. Implementa el siguiente diagrama.
Ing. Roberto Martínez Román -
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.