Usuario:Luiismendz

De ShoutWiki
Saltar a: navegación, buscar

Métodos Abstractos[editar]

• Son métodos que no tienen implementación (body) • Para crear un método abstracto sólo escribir la declaración del método sin el cuerpo y usar la palabra reservada

abstract Java 4 – Sin { } 

• Ejemplo:

// Notese que no hay cuerpo public abstract void algunMetodo();

Que es o que son las Clases Abstractas[editar]

• Una clase abstracta es una clase que contiene uno o más métodos abstractos

• Una clase abstracta no se puede instanciar

 // Da error de compilacion MiClaseAbst a1 = new MiClaseAbst();
 Java 5 MiClaseAbst a1 = new MiClaseAbst();

• Otra clase (clase concreta) tiene que proporcionar la implementación de los métodos abstractos – La clase concreta tiene que implementar todos los métodos abstractos de la clase abstracta para que sea usada para instanciarla

– Las clases concretas usan la palabra reservada extends

Ejemplo de Clase Abstracta

public abstract class LivingThing 

{ public void breath(){ System.out.println("Living Thing breathing..."); }

public void eat(){ System.out.println("Living Thing eating..."); }
public abstract class LivingThing { public void breath(){ System.out.println("Living Thing breathing..."); } public void eat(){ System.out.println("Living Thing eating..."); } 
Java 6 /** * Abstract method walk() * Queremos que este metodo sea implementado * por una clase concreta. */ public abstract void walk(); }

Uso de las clases abstractas[editar]

• Los métodos abstractos son normalmente declarados donde dos o más subclases se espera que cumplan un papel similar en diferentes modos a través de diferentes implementaciones (polimorfismo) – Las subclases extienden la misma clase abstracta y Java 8 proporcionan diferentes implementaciones para los método abstractos • Usar clases abstractas para definir tipos amplios de comportamientos en la raíz de la jerarquía de clases y usar sus subclases para proporcionar los detalles de implementación de la clase abstracta

Qué es una interface?[editar]

• Define una forma estándar y pública de especificar el comportamiento de clases

• Todos lo métodos de una interface son métodos abstractos (firmas de métodos sin implementación) Java 9

• Una clase concreta debe implementar (implements) la interface, es decir, implementar todos los métodos

• Permite la implementación de clases con comportamientos comunes, sin importar su ubicación en la jerarquía de clases Definiendo interfaces

• Sintaxis para definir una interface:

public interface [NombreInterface] { // metodos sin cuerpo }

• Ejemplo: interface que define relaciones entre dos Java 10 objetos de acuerdo al “orden natural” de los objeto

s public interface Relation { public boolean isGreater(Object a, Object b); public boolean isLess(Object a, Object b); public boolean isEqual(Object a, Object b); } Implementando interfaces 

• Para crear una clase concreta que implementa una interface, se usa la palabra reservada implements

 /** * Clase Line implements Relation interface */ public class Line implements Relation { Java 11 private double x1; private double x2; private double y1; private double y2; public Line(double x1, double x2, double y1, double y2){ this.x1 = x1; this.x2 = x2; this.y1 = y1; this.y2 = y2; }

La interfaz como referencia[editar]

• La definición de una interface implica una definición de un nuevo tipo de referencia y por ello se puede usar el nombre de la interface como nombre de tipo

• Si se define una variable cuyo tipo es una interface, se le puede asignar un objeto que es una instancia de Java 18 una clase que implementa la interface

• Ejemplo: la clase Person implementa

PersonInterface Person p1 = new Person(); PersonInterface pi1 = p1; PersonInterface pi2 = new Person();

Relación de una interface a una clase

• Una clase concreta sólo puede extender una super clase, pero puede implementar múltiples interfaces – El lenguaje Java no permite herencia múltiple, pero las interfaces proporcionan una alternativa

• Todos los métodos abstractos de todas las interfaces Java 21 tiene que ser implementados por la clase concreta

public class IndustrialStudent extends Student implements PersonInterface, OtraInterface, NesimaInterface 
{ // todos los metodos abstractos de todas las
// interfaces deben ser implementados