SlideShare uma empresa Scribd logo
1 de 17
Programación I 
Alexandra Pérez 
Lab. E6 
20/12/2012
Clases Abstractas 
 
 Un método abstracto es un método declarado en una 
clase para el cual esa clase no proporciona la 
implementación (el código). 
 Una clase abstracta es una clase que tiene al menos 
un método abstracto. 
 Una clase que extiende a una clase abstracta debe 
implementar los métodos abstractos (escribir el 
código) o bien volverlos a declarar como abstractos, 
con lo que ella misma se convierte también en clase 
abstracta.
 Presentan un nivel de "abstracción" tan elevado que no 
sirven para instanciar objetos de ellas. 
 
 Representan los escalones más elevados de algunas 
jerarquías de clases y solo sirven para derivar otras clases, 
en las que se van implementando detalles y concreciones, 
hasta que finalmente presentan un nivel de definición 
suficiente que permita instanciar objetos concretos. 
 Se suelen utilizar en aquellos casos en que se quiere que 
una serie de clases mantengan una cierta característica o 
interfaz común. Por esta razón a veces se dice de ellas que 
son pura interfaz.

Declaración e implementación de 
métodos abstractos 
 
abstract class FiguraGeometrica { 
. . . 
abstract void dibujar(); 
. . . 
} 
class Circulo extends FiguraGeometrica { 
. . . 
void dibujar() { 
// codigo para dibujar Circulo 
. . . 
} 
}
Declaración de clases abstractas 
Las clases abstractas se declaran empleando la palabra 
reservada abstract como se muestra a continuación: 
 public abstract class IdClase . . . 
 
Ejemplo: 
/** 
* Declaracion de la clase abstracta FiguraGeometrica 
* A. Garcia-Beltran - noviembre, 2005 
*/ 
public abstract class FiguraGeometrica { 
// Declaracion de atributos 
private String nombre; 
// Declaracion de metodos 
abstract public double area(); 
public figuraGeometrica (String nombreFigura ) { 
nombre = nombreFigura; 
} 
final public boolean mayorQue (FiguraGeometrica otra) { 
return area()>otra.area(); 
} 
final public String toString() { 
return nombre + " con area " + area(); 
} 
}
Reglas de uso: 
 
 Una clase abstracta solo puede ser usada como clase 
base para otras clases, pero no puede ser instanciada 
para crear un objeto. 
 Una clase abstracta no puede ser utilizada como 
argumento o como retorno de una función. 
 Si puede declararse punteros a clase abstracta . 
 Se permiten referencias a clase abstracta, suponiendo 
que el objeto temporal no es necesario en la 
inicialización.
Referencias y objetos abstractos 
Se pueden crear referencias a clases abstractas como cualquier otra: 
 
FiguraGeometrica figura; 
Sin embargo una clase abstracta no se puede instanciar, es decir, no se 
pueden crear objetos de una clase abstracta. El compilador producirá un 
error si se intenta: 
FiguraGeometrica figura = new FiguraGeometrica(); 
Esto es coherente dado que una clase abstracta no tiene completa su 
implementación y encaja bien con la idea de que algo abstracto no 
puede materializarse. 
Sin embargo: 
FiguraGeometrica figura = new Circulo(. . .); 
figura.dibujar(); 
La invocación al método dibujarse resolverá en tiempo de ejecución y la 
JVM llamará al método de la clase adecuada.
Ejemplo clase abstracta 
public abstract class Figura {  
int x, y; 
public void mostrarOrigen() { 
System.out.println("x= "+x+" y= "+y);} 
public abstract double area(); // No tiene implementación 
public abstract double mostrarNombre(); 
} 
public class Triangulo extends Figura { 
protected int base, altura; 
public Triangulo (int ba, int al) { base=ba; altura=al; } 
public double area() { return base*altura/2; } 
public void mostrarNombre() { System.out.println(“triangulo”); } 
} 
public class Cuadrado extends Figura { 
protected int lado; 
public Cuadrado (int lado) { this.lado=lado; } 
public double area() { return lado*lado; } 
public void mostrarNombre() { System.out.println(“cuadrado”);}}
 Prueba clase abstracta 
public class PruebaClaseAbstracta { 
public static void main(String args[]) { 
Figura fig; 
Triangulo tri; 
 
Cuadrado cua; 
fig = new Figura(); // error no se puede 
//instanciar una clase abstracta 
tri = new Triangulo(4,3); 
tri.mostrarOrigen(); 
tri.mostrarNombre(); 
fig = tri; 
fig.mostrarNombre(); 
System.out.println("Area triangulo: "+fig.area()); 
cua = new Cuadrado(5); 
fig = cua; 
System.out.println("Area cuadrado: "+fig.area()); 
} 
}
Interfaces 
 
 Una interfaz en java es un conjunto de métodos 
abstractos y propiedades. En ellas se especifica qué 
se debe hacer pero no su implementación. Serán las 
clases que implementen estas interfaces las que 
describan la lógica del comportamiento de los 
métodos.
Ventajas al utilizar interfaces 
 
 Se organiza la programación. 
 Obligar a que ciertas clases utilicen los mismos 
métodos (nombres y parámetros). 
 Establecer relaciones entre clases que no estén 
relacionadas.
Declaración de interfaces 
 
interface NombreInterfaz { 
tipo static final NOMBRECONSTANTE1 = valor; 
…….….…. 
public tipoDevuelto nombreMetodo1(listaParámetros); 
…….….…. 
} 
class NombreClase implements NombreInterfaz1 
[, NombreInterfaz2 ..] { 
// declaración atributos y métodos de la clase 
…….….…. 
}

Extensión de interfaces 
 
 Se puede definir un interface que especialice a otro 
interface mediante extends similar a herencia. 
 Un interface puede extender a varios interfaces a la vez. 
interface ElementoOrdenado extends 
Comparable, Cloneable, java.io.Serializable { 
// miembros y métodos propios del interfaz 
//ElementoOrdenado 
..... 
}
 
Ejemplo: 
public interface Nombrable { 
static final boolean CIERTO = true; 
public void mostrarNombre(); 
} 
public class Elemento implements Nombrable { 
String nombre; 
public Elemento(String nom) { 
nombre = nom; } 
// obligatorio implementar método mostrarNombre 
public void mostrarNombre(){ 
System.out.println("Nombre: "+nombre); 
if (CIERTO) 
System.out.println("Constante CIERTO "); 
}}
 
Net grafía: 
 http://gl-epn-programacion-ii. 
blogspot.com/2010/04/interfaces-en-java.html 
 http://www.fdi.ucm.es/profesor/lgarmend/arcgisjava/temas 
/Tema%209%20Clases%20abstractas 
 http://ocw.upm.es/lenguajes-y-sistemas-informaticos/ 
programacion-en-java-i/ 
Contenidos/LecturaObligatoria/16-herencia.pdf 
%20e%20interfaces.pdf 
 http://www.slideshare.net/networksens/09-clases-abstractas-e- 
interfaces 
 http://www.zator.com/Cpp/E4_11_8c.htm 
 http://www.arrakis.es/~abelp/ApuntesJava/ClasesAbstractas 
.htm

Mais conteúdo relacionado

Mais procurados

Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnetjhordy2000
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfacesEduardo Lapo
 
Polimorfismo y Clases Abstractas
Polimorfismo y Clases AbstractasPolimorfismo y Clases Abstractas
Polimorfismo y Clases Abstractascodigosyalgomas
 
Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Ezer Ayala Mutul
 
Conceptos y definiciones de poo (quino ortiz & miguel martinez)
Conceptos y definiciones de poo (quino ortiz & miguel martinez)Conceptos y definiciones de poo (quino ortiz & miguel martinez)
Conceptos y definiciones de poo (quino ortiz & miguel martinez)MIGUEL_INGENIERO
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoAlvaro Enrique Ruano
 
Curso Java Inicial 6 Polimorfismo, AbstraccióN E Interfaces
Curso Java Inicial   6 Polimorfismo, AbstraccióN E InterfacesCurso Java Inicial   6 Polimorfismo, AbstraccióN E Interfaces
Curso Java Inicial 6 Polimorfismo, AbstraccióN E InterfacesEmilio Aviles Avila
 
Diseño de la logica
Diseño de la logicaDiseño de la logica
Diseño de la logicaanych27
 
8. técnicas de escritura de códigos
8. técnicas de escritura de códigos8. técnicas de escritura de códigos
8. técnicas de escritura de códigosHectorMamani
 

Mais procurados (20)

Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnet
 
Clases abs e interfaces
Clases abs e interfacesClases abs e interfaces
Clases abs e interfaces
 
Interfaces en Java
Interfaces en JavaInterfaces en Java
Interfaces en Java
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfaces
 
¿Qué es una interface en java?
¿Qué es una interface en java?¿Qué es una interface en java?
¿Qué es una interface en java?
 
Polimorfismo y Clases Abstractas
Polimorfismo y Clases AbstractasPolimorfismo y Clases Abstractas
Polimorfismo y Clases Abstractas
 
Tema5
Tema5Tema5
Tema5
 
POO
POOPOO
POO
 
Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1
 
Conceptos y definiciones de poo (quino ortiz & miguel martinez)
Conceptos y definiciones de poo (quino ortiz & miguel martinez)Conceptos y definiciones de poo (quino ortiz & miguel martinez)
Conceptos y definiciones de poo (quino ortiz & miguel martinez)
 
Laboratorio clase abstract
Laboratorio clase abstractLaboratorio clase abstract
Laboratorio clase abstract
 
Programación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismoProgramación Orientada a Objetos - herencia y polimorfismo
Programación Orientada a Objetos - herencia y polimorfismo
 
Poo en java herencia
Poo en java   herenciaPoo en java   herencia
Poo en java herencia
 
Laboratorio interfaces
Laboratorio interfacesLaboratorio interfaces
Laboratorio interfaces
 
Laboratorio de polimorfismo
Laboratorio de  polimorfismoLaboratorio de  polimorfismo
Laboratorio de polimorfismo
 
Interfaces en Java
Interfaces en JavaInterfaces en Java
Interfaces en Java
 
Curso Java Inicial 6 Polimorfismo, AbstraccióN E Interfaces
Curso Java Inicial   6 Polimorfismo, AbstraccióN E InterfacesCurso Java Inicial   6 Polimorfismo, AbstraccióN E Interfaces
Curso Java Inicial 6 Polimorfismo, AbstraccióN E Interfaces
 
4 unidad polimorfismo
4 unidad polimorfismo4 unidad polimorfismo
4 unidad polimorfismo
 
Diseño de la logica
Diseño de la logicaDiseño de la logica
Diseño de la logica
 
8. técnicas de escritura de códigos
8. técnicas de escritura de códigos8. técnicas de escritura de códigos
8. técnicas de escritura de códigos
 

Destaque (20)

Viii torneo escolar de brilé
Viii torneo escolar de briléViii torneo escolar de brilé
Viii torneo escolar de brilé
 
Expirence Certificate
Expirence CertificateExpirence Certificate
Expirence Certificate
 
Tic2 actividad 1
Tic2 actividad 1Tic2 actividad 1
Tic2 actividad 1
 
Presentacion powerpoint
Presentacion powerpointPresentacion powerpoint
Presentacion powerpoint
 
Pres eje estantares laborales global compact uniRSE convenios oit
Pres eje estantares laborales global compact uniRSE convenios oitPres eje estantares laborales global compact uniRSE convenios oit
Pres eje estantares laborales global compact uniRSE convenios oit
 
Grupo juvenil nuestra señora de belen
Grupo juvenil nuestra señora de belenGrupo juvenil nuestra señora de belen
Grupo juvenil nuestra señora de belen
 
2-PREPARTIDO
2-PREPARTIDO2-PREPARTIDO
2-PREPARTIDO
 
ZK_Arch_notes_20081121
ZK_Arch_notes_20081121ZK_Arch_notes_20081121
ZK_Arch_notes_20081121
 
Como nascem as organizações
Como nascem as organizaçõesComo nascem as organizações
Como nascem as organizações
 
Sistema tegumentario
Sistema tegumentarioSistema tegumentario
Sistema tegumentario
 
TMT Newsletter
TMT NewsletterTMT Newsletter
TMT Newsletter
 
diploma_Uday
diploma_Udaydiploma_Uday
diploma_Uday
 
Inss direito previdenciário-concurso inss - apostila amostra
Inss   direito previdenciário-concurso inss - apostila amostraInss   direito previdenciário-concurso inss - apostila amostra
Inss direito previdenciário-concurso inss - apostila amostra
 
Slb Letter
Slb LetterSlb Letter
Slb Letter
 
Honeywell Certificate
Honeywell CertificateHoneywell Certificate
Honeywell Certificate
 
JP Certificate
JP CertificateJP Certificate
JP Certificate
 
Entfa horarios curso nivel 1 pinto
Entfa horarios curso nivel 1   pintoEntfa horarios curso nivel 1   pinto
Entfa horarios curso nivel 1 pinto
 
Recommendation from Dr. Snyder
Recommendation from Dr. SnyderRecommendation from Dr. Snyder
Recommendation from Dr. Snyder
 
AISSE Certificate
AISSE CertificateAISSE Certificate
AISSE Certificate
 
Companias expo
Companias expoCompanias expo
Companias expo
 

Semelhante a Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02

Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoAngel Vázquez Patiño
 
Tema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfazTema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfazRobert Wolf
 
U8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdfU8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdfJCarlosCrespo
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosjent46
 
secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf202100941c
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02Krizztiina Pacheko
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje javaMargarita Romero
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaAngel Vázquez Patiño
 
Clases abstractas e interfaces en java
Clases abstractas e interfaces en javaClases abstractas e interfaces en java
Clases abstractas e interfaces en javajcalmeida2
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Javamaeusogo
 
Polimorfismo ppt
Polimorfismo  pptPolimorfismo  ppt
Polimorfismo pptivanvillar7
 
Clases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicioClases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicioJose Luis Moreno Arcos
 

Semelhante a Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02 (20)

Programación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismoProgramación 3: clases derivadas y polimorfismo
Programación 3: clases derivadas y polimorfismo
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
Tema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfazTema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfaz
 
U8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdfU8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdf
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf
 
Clase viii
Clase viiiClase viii
Clase viii
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
 
INTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVAINTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVA
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
 
manual de C#
manual de C#manual de C#
manual de C#
 
Manual c# 2
Manual c# 2Manual c# 2
Manual c# 2
 
Manual de c#
Manual de c#Manual de c#
Manual de c#
 
Clase 2 Poo
Clase 2 PooClase 2 Poo
Clase 2 Poo
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
 
Clases abstractas e interfaces en java
Clases abstractas e interfaces en javaClases abstractas e interfaces en java
Clases abstractas e interfaces en java
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
 
Polimorfismo ppt
Polimorfismo  pptPolimorfismo  ppt
Polimorfismo ppt
 
Clases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicioClases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicio
 

Último

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
10°8 - Avances tecnologicos del siglo XXI
10°8 - Avances tecnologicos del siglo XXI10°8 - Avances tecnologicos del siglo XXI
10°8 - Avances tecnologicos del siglo XXIantoniopalmieriluna
 
Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...solanocortezluisalfr
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxgustavovasquezv56
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfaxelv9257
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...axelv9257
 

Último (15)

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
10°8 - Avances tecnologicos del siglo XXI
10°8 - Avances tecnologicos del siglo XXI10°8 - Avances tecnologicos del siglo XXI
10°8 - Avances tecnologicos del siglo XXI
 
Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 

Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02

  • 1. Programación I Alexandra Pérez Lab. E6 20/12/2012
  • 2. Clases Abstractas   Un método abstracto es un método declarado en una clase para el cual esa clase no proporciona la implementación (el código).  Una clase abstracta es una clase que tiene al menos un método abstracto.  Una clase que extiende a una clase abstracta debe implementar los métodos abstractos (escribir el código) o bien volverlos a declarar como abstractos, con lo que ella misma se convierte también en clase abstracta.
  • 3.  Presentan un nivel de "abstracción" tan elevado que no sirven para instanciar objetos de ellas.   Representan los escalones más elevados de algunas jerarquías de clases y solo sirven para derivar otras clases, en las que se van implementando detalles y concreciones, hasta que finalmente presentan un nivel de definición suficiente que permita instanciar objetos concretos.  Se suelen utilizar en aquellos casos en que se quiere que una serie de clases mantengan una cierta característica o interfaz común. Por esta razón a veces se dice de ellas que son pura interfaz.
  • 4.
  • 5. Declaración e implementación de métodos abstractos  abstract class FiguraGeometrica { . . . abstract void dibujar(); . . . } class Circulo extends FiguraGeometrica { . . . void dibujar() { // codigo para dibujar Circulo . . . } }
  • 6. Declaración de clases abstractas Las clases abstractas se declaran empleando la palabra reservada abstract como se muestra a continuación:  public abstract class IdClase . . .  Ejemplo: /** * Declaracion de la clase abstracta FiguraGeometrica * A. Garcia-Beltran - noviembre, 2005 */ public abstract class FiguraGeometrica { // Declaracion de atributos private String nombre; // Declaracion de metodos abstract public double area(); public figuraGeometrica (String nombreFigura ) { nombre = nombreFigura; } final public boolean mayorQue (FiguraGeometrica otra) { return area()>otra.area(); } final public String toString() { return nombre + " con area " + area(); } }
  • 7. Reglas de uso:   Una clase abstracta solo puede ser usada como clase base para otras clases, pero no puede ser instanciada para crear un objeto.  Una clase abstracta no puede ser utilizada como argumento o como retorno de una función.  Si puede declararse punteros a clase abstracta .  Se permiten referencias a clase abstracta, suponiendo que el objeto temporal no es necesario en la inicialización.
  • 8. Referencias y objetos abstractos Se pueden crear referencias a clases abstractas como cualquier otra:  FiguraGeometrica figura; Sin embargo una clase abstracta no se puede instanciar, es decir, no se pueden crear objetos de una clase abstracta. El compilador producirá un error si se intenta: FiguraGeometrica figura = new FiguraGeometrica(); Esto es coherente dado que una clase abstracta no tiene completa su implementación y encaja bien con la idea de que algo abstracto no puede materializarse. Sin embargo: FiguraGeometrica figura = new Circulo(. . .); figura.dibujar(); La invocación al método dibujarse resolverá en tiempo de ejecución y la JVM llamará al método de la clase adecuada.
  • 9. Ejemplo clase abstracta public abstract class Figura {  int x, y; public void mostrarOrigen() { System.out.println("x= "+x+" y= "+y);} public abstract double area(); // No tiene implementación public abstract double mostrarNombre(); } public class Triangulo extends Figura { protected int base, altura; public Triangulo (int ba, int al) { base=ba; altura=al; } public double area() { return base*altura/2; } public void mostrarNombre() { System.out.println(“triangulo”); } } public class Cuadrado extends Figura { protected int lado; public Cuadrado (int lado) { this.lado=lado; } public double area() { return lado*lado; } public void mostrarNombre() { System.out.println(“cuadrado”);}}
  • 10.  Prueba clase abstracta public class PruebaClaseAbstracta { public static void main(String args[]) { Figura fig; Triangulo tri;  Cuadrado cua; fig = new Figura(); // error no se puede //instanciar una clase abstracta tri = new Triangulo(4,3); tri.mostrarOrigen(); tri.mostrarNombre(); fig = tri; fig.mostrarNombre(); System.out.println("Area triangulo: "+fig.area()); cua = new Cuadrado(5); fig = cua; System.out.println("Area cuadrado: "+fig.area()); } }
  • 11. Interfaces   Una interfaz en java es un conjunto de métodos abstractos y propiedades. En ellas se especifica qué se debe hacer pero no su implementación. Serán las clases que implementen estas interfaces las que describan la lógica del comportamiento de los métodos.
  • 12. Ventajas al utilizar interfaces   Se organiza la programación.  Obligar a que ciertas clases utilicen los mismos métodos (nombres y parámetros).  Establecer relaciones entre clases que no estén relacionadas.
  • 13. Declaración de interfaces  interface NombreInterfaz { tipo static final NOMBRECONSTANTE1 = valor; …….….…. public tipoDevuelto nombreMetodo1(listaParámetros); …….….…. } class NombreClase implements NombreInterfaz1 [, NombreInterfaz2 ..] { // declaración atributos y métodos de la clase …….….…. }
  • 14.
  • 15. Extensión de interfaces   Se puede definir un interface que especialice a otro interface mediante extends similar a herencia.  Un interface puede extender a varios interfaces a la vez. interface ElementoOrdenado extends Comparable, Cloneable, java.io.Serializable { // miembros y métodos propios del interfaz //ElementoOrdenado ..... }
  • 16.  Ejemplo: public interface Nombrable { static final boolean CIERTO = true; public void mostrarNombre(); } public class Elemento implements Nombrable { String nombre; public Elemento(String nom) { nombre = nom; } // obligatorio implementar método mostrarNombre public void mostrarNombre(){ System.out.println("Nombre: "+nombre); if (CIERTO) System.out.println("Constante CIERTO "); }}
  • 17.  Net grafía:  http://gl-epn-programacion-ii. blogspot.com/2010/04/interfaces-en-java.html  http://www.fdi.ucm.es/profesor/lgarmend/arcgisjava/temas /Tema%209%20Clases%20abstractas  http://ocw.upm.es/lenguajes-y-sistemas-informaticos/ programacion-en-java-i/ Contenidos/LecturaObligatoria/16-herencia.pdf %20e%20interfaces.pdf  http://www.slideshare.net/networksens/09-clases-abstractas-e- interfaces  http://www.zator.com/Cpp/E4_11_8c.htm  http://www.arrakis.es/~abelp/ApuntesJava/ClasesAbstractas .htm