Documentos de Académico
Documentos de Profesional
Documentos de Cultura
No proporcionan la implementacin de todos sus mtodos Los mtodos no implementados se declaran como abstract Una clase con un mtodo abstracto debe declararse como clase abstracta Pero una clase puede declararse como abstracta aunque no tenga ningn mtodo abstracto
Java
Arrays y Cadenas
Java
Arrays y Cadenas
Clases abstractas
Forma xpos ypos color ... dibuja setColor ... {abstract}
Clases abstractas
public abstract class Forma { private int xpos, ypos; private Color color; // ... public abstract void dibuja(); public void setColor(Color c){ /*...*/ }; } public class Circle extends Forma{ private int radio; // ... public void dibuja(){ /*...*/ }; public void setRadio(int){/*...*/}; } public class Rectangle extends Forma{ private int altura, anchura; // ... public void dibuja(){ /*...*/ }; public void setAltura(int){/*...*/}; } 3 Java Arrays y Cadenas
Otras
Circulo radio ... setRadio ... Rectangulo altura anchura ... setAltura ...
dibuja un rectngulo
Java
Arrays y Cadenas
Clases abstractas
Las subclases de una clase abstracta deben: Sobreescribir todos los mtodos abstractos de la superclase, o bien Ser declaradas como clases abstractas Una clase abstracta no puede instanciarse No se pueden crear objetos de una clase abstracta Una clase abstracta puede incluir variables y mtodos no abstractos. No se pueden definir constructores abstractos o mtodos estticos abstractos.
Triangulo Cuadrado }
Java
Arrays y Cadenas
Interfaces
Slo declaran comportamiento
} } } }
Java
Arrays y Cadenas
Interfaces
Permite simular algunos aspectos de la herencia mltiple
Declaracin de interfaces
Sintaxis
interface NombreInterfaz NombreInterfaz { { interface tipo static static final final NOMBRECONSTANTE1 NOMBRECONSTANTE1 = = valor; valor; tipo ... ... public tipoDevuelto tipoDevuelto nombreMetodo1( nombreMetodo1(listaParmetros); listaParmetros); public ... ... } } class NombreClase implements Implementacin del [, NombreInterfaz2 ..] { NombreInterfaz1 interfaz en una clase NombreInterfaz2 ..] // declaracin [, atributos y mtodos de{ la clase ... Una clase puedeatributos implementar // declaracin y } variosde interfaces mtodos la clase
9
Cualquier clase que implemente un interfaz debe definir todos los mtodos de dicho interfaz
Debe proporcionar la implementacin de dichos mtodos
Si la clase no proporciona la implementacin para todos los mtodos del interfaz debe ser declarada como abstracta
Java Arrays y Cadenas
... }
Java
Arrays y Cadenas
10
interfaces
Programador es un Asalariado
Ejemplo de interfaz
public interface interface Nombrable Nombrable { { public static final final boolean boolean CIERTO CIERTO = = true; true; static public void void mostrarNombre(); mostrarNombre(); public } } public class class Elemento Elemento implements implements Nombrable Nombrable { { public String nombre; nombre; String public Elemento(String Elemento(String nom) nom) { { public nombre = = nom; nom; } } nombre // obligatorio obligatorio implementar implementar mtodo mtodo mostrarNombre mostrarNombre // public void void mostrarNombre(){ mostrarNombre(){ public System.out.println("Nombre: "+nombre); "+nombre); System.out.println("Nombre: if (CIERTO) (CIERTO) if System.out.println("Constante CIERTO CIERTO "); "); System.out.println("Constante Java Arrays y Cadenas 12 }} }}
Java
Arrays y Cadenas
11
Ejemplo de interfaces
Humano Actor Canino
Perro
...
} }
Java
Arrays y Cadenas
14
Ejemplo de interfaces
interface Actor void actua(); }
Extensin de interfaces
Se puede definir un interface que especialice a otro interface mediante
sin cuerpo
extends
Actor { public void actua(){ /*...*/}; //... } public class Perro extends Canino implements Actor { public void actua(){ /*...*/}; //... }
Java Arrays y Cadenas 15
Java
Arrays y Cadenas
16
Extensin de interfaces
No obstante un interface puede extender a varios interfaces a la vez
Rsumen de interfaces
Las interfaces sirven para:
una o ms clases. Determinar la interface de programacin de un objeto, sin mostrar el cuerpo de la clase. Capturar similitudes entre clases no relacionadas, sin forzar una relacin entre ellas. Describir objetos "tipo -funcin", que podrn ser utilizados como argumentos al invocar mtodos sobre objetos.
Java Arrays y Cadenas 18
interface ElementoOrdenado ElementoOrdenado extends extends interface Comparable, Cloneable, Cloneable, java.io.Serializable java.io.Serializable { { Comparable, // miembros miembros y y mtodos mtodos propios propios del del interfaz interfaz // //ElementoOrdenado //ElementoOrdenado ..... ..... } }
Java Arrays y Cadenas 17
Rsumen de interfaces
Tipo herencia nstanciable mplementa datos Class extends (simple) yes metodos Se permiten Abstract Class extends (simple) no algn mtodo Se permiten Interface implements (multiple) no nada no se permiten
Java
Arrays y Cadenas
19