SlideShare una empresa de 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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Destacado (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
 

Similar 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
 

Similar 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

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 

Último (20)

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 

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