SlideShare una empresa de Scribd logo
ESCUELA POLITECNICA DEL EJERCITO.

PERALTA CEVALLOS ALEX PATRICIO

          PROGRAMACION I
Una clase abstracta puede contener
                                métodos no-abstractos pero al
                               menos uno de los métodos debe
                                   ser declarado abstracto.



Una clase que extiende a una clase                              En esta clase se declara la
 abstracta debe implementar los                                existencia de métodos pero
  métodos abstractos (escribir el                                no la implementación de
código) o bien volverlos a declarar         CLASES              dichos métodos (o sea, las
 como abstractos, con lo que ella         ABSTRACTAS.            llaves { } y las sentencias
 misma se convierte también en                                          entre ellas)
         clase abstracta.



                               Java proporciona las clases y métodos
                          abstractos. 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).
Declaración e implementación de métodos abstractos
Por ejemplo, una estructura de clases para manipular figuras geométricas. Podríamos pensar en
    tener una clase genérica, que podría llamarse FiguraGeometrica y una serie de clases que
 extienden a la anterior que podrían ser Circulo, Polígono, etc. Podría haber un método dibujar
     dado que sobre todas las figuras puede llevarse a cabo esta acción, pero las operaciones
  concretas para llevarla a cabo dependen del tipo de figura en concreto (de su clase). Por otra
 parte la acción dibujar no tiene sentido para la clase genérica FiguraGeometrica, porque esta
                clase representa una abstracción del conjunto de figuras posibles.

•    Siguiendo con el ejemplo del apartado anterior, se puede escribir:
•    abstract class FiguraGeometrica {
     ...
     abstract void dibujar();
     ...
     }
     class Circulo extends FiguraGeometrica {
     ...
     void dibujar() {
     // codigo para dibujar Circulo
     ...
     }
     }
   La clase abstracta se declara simplemente con el modificador abstract en su declaración. Los
 métodos abstractos se declaran también con el mismo modificador, declarando el método pero
   sin implementarlo (sin el bloque de código encerrado entre {}). La clase derivada se declara e
 implementa de forma normal, como cualquier otra. Sin embargo si no declara e implementa los
  métodos abstractos de la clase base (en el ejemplo el método dibujar) el compilador genera un
   error indicando que no se han implementado todos los métodos abstractos y que, o bien, se
                         implementan, o bien se declara la clase abstracta.
Referencias y objetos abstractos
•   Se pueden crear referencias a clases abstractas como cualquier otra. No hay
    ningún problema en poner:
                                             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 utilizando el up-casting visto en el capítulo dedicado a la Herencia si
    se puede escribir:

                         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. En nuestro ejemplo se llamará al método
    dibujar de la clase Circulo.
Una interface es una variante de una clase abstracta con la condición de que
 todos sus métodos deben ser abstractos. Si la interface va a tener atributos,
éstos deben llevar las palabras reservadas static final y con un valor inicial ya
que funcionan como constantes por lo que, por convención, su nombre va en
                                  mayúsculas.
                              interface Nomina {
             public static final String EMPRESA = "Patito, S. A.";
               public void detalleDeEmpleado(Nomina obj); }




                               INTERFACES




 Una clase implementa una o más interfaces (separadas con comas ",")
con la palabra reservada implements. Con el uso de interfaces se puede
           "simular" la herencia múltiple que Java no soporta.
                class Empleado implements Nomina { ... }
EJEMPLO
•   En este ejemplo, la clase Empleado tiene una clase padre llamada Object
    (implícitamente) e implementa a la interface Nomina, quedando el
    diagrama de clases de la siguiente manera:




    La clase que implementa una interface tiene dos opciones:
    1) Implementar todos los métodos de la interface.
    2) Implementar sólo algunos de los métodos de la interface pero esa clase
    debe ser una clase abstracta (debe declararse con la palabra abstract).
INTERFACES
•    Solo declaran comportamiento
    -Se utiliza la palabra clave interface
     - Por defecto todos sus métodos son públicos y abstractos.
     -No implementan el comportamiento
•   Por defecto todos sus atributos son públicos, constantes y de clase.
•   Por legibilidad normalmente los declaramos static y final.
•   Permite simular algunos aspectos de la herencia múltiple
     -define un tipo de datos
     -posibilita el enlace dinámico.
•   Otras clases pueden implementar un interfaz
     -Cualquier clase implemente un interfaz debe definir todos los
    métodos de dicho interfaz
    -Si la clase no proporciona la implementación para todos los
    métodos del interfaz debe ser declarada como abstracta
Extensión de interfaces
• Se puede definir un interface que especialice a
  otro interface mediante extends.
• Es similar a la herencia de clases.
• No obstante un interface puede extender a
  varios interfaces a la vez
Resumen de interfaces
• Los interfaces sirven para:
 Declarar métodos que serán implementados por
  una o mas clases.
 Determinar la interface de programación de un
  objeto, sin mostrar el cuerpo de la clase.
 Capturar similitudes entre clases no relacionadas,
  sin forzar una relación entre ellas.
 Describir objetos “tipo-función”, que podrán ser
  utilizados como argumentos al invocar métodos
  sobre objetos.
Clases abstractas interfaces
Clases abstractas interfaces
Clases abstractas interfaces
Clases abstractas interfaces
Clases abstractas interfaces

Más contenido relacionado

La actualidad más candente

Clases abs e interfaces
Clases abs e interfacesClases abs e interfaces
Clases abs e interfaces
Rodrigo Salinas
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfacesEduardo Lapo
 
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
Jose Luis Moreno Arcos
 
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
Emilio Aviles Avila
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
JoseArturo27
 
Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)
Maria Garcia
 
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
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosJoseph Bros
 
Tema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfazTema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfazRobert Wolf
 
Curso Java Inicial 5 Relaciones Entre Objetos
Curso Java Inicial   5 Relaciones Entre ObjetosCurso Java Inicial   5 Relaciones Entre Objetos
Curso Java Inicial 5 Relaciones Entre Objetos
Emilio Aviles Avila
 
1 Paradigma Objetos
1 Paradigma Objetos1 Paradigma Objetos
1 Paradigma Objetos
diana londono
 
Elementos de una programación
Elementos de una programaciónElementos de una programación
Elementos de una programación
medranovillalta
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clases
Alvaro Enrique Ruano
 

La actualidad más candente (18)

Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Clases abs e interfaces
Clases abs e interfacesClases abs e interfaces
Clases abs e interfaces
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfaces
 
4 unidad polimorfismo
4 unidad polimorfismo4 unidad polimorfismo
4 unidad polimorfismo
 
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
 
Benalcazar esteban
Benalcazar estebanBenalcazar esteban
Benalcazar esteban
 
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
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)
 
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
 
Leccion 9 Java
Leccion 9 JavaLeccion 9 Java
Leccion 9 Java
 
Herencia Y Polimorfismo
Herencia Y PolimorfismoHerencia Y Polimorfismo
Herencia Y Polimorfismo
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Tema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfazTema 10 clase abstractas e interfaz
Tema 10 clase abstractas e interfaz
 
Curso Java Inicial 5 Relaciones Entre Objetos
Curso Java Inicial   5 Relaciones Entre ObjetosCurso Java Inicial   5 Relaciones Entre Objetos
Curso Java Inicial 5 Relaciones Entre Objetos
 
1 Paradigma Objetos
1 Paradigma Objetos1 Paradigma Objetos
1 Paradigma Objetos
 
Elementos de una programación
Elementos de una programaciónElementos de una programación
Elementos de una programación
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clases
 

Similar a Clases abstractas interfaces

Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Kositha Jimhiz G
 
Clases abstractas e interfaces en java
Clases abstractas e interfaces en javaClases abstractas e interfaces en java
Clases abstractas e interfaces en javajcalmeida2
 
Laboratorio clase abstract
Laboratorio clase abstractLaboratorio clase abstract
Laboratorio clase abstract
Andres Herrera Rodriguez
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
Renny Batista
 
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
Angel Vázquez Patiño
 
8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptx8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptx
juan gonzalez
 
JAVA 00 - TEMA 05 - HERENCIA
JAVA 00 - TEMA 05 - HERENCIAJAVA 00 - TEMA 05 - HERENCIA
JAVA 00 - TEMA 05 - HERENCIA
Eric Gustavo Coronel Castillo
 
Laboratorio interfaces
Laboratorio interfacesLaboratorio interfaces
Laboratorio interfaces
Andres Herrera Rodriguez
 
secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf
202100941c
 
2 3 3 Interfaces
2 3 3 Interfaces2 3 3 Interfaces
2 3 3 InterfacesUVM
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
maeusogo
 
Clases abstractas e interfaz
Clases abstractas e interfazClases abstractas e interfaz
Clases abstractas e interfazHector López
 
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
JCarlosCrespo
 
Proyecto en android completado
Proyecto en android completadoProyecto en android completado
Proyecto en android completadoKai Exo
 
Alejandro Merizalde
Alejandro MerizaldeAlejandro Merizalde
Alejandro Merizalde
Alejandro Merizalde
 
Programacion orientada a_objetos
Programacion orientada a_objetosProgramacion orientada a_objetos
Programacion orientada a_objetos
Eusebio Alvarado Mendez
 
Conceptos adicionales a la programación orientada a objetos con JavaScript
Conceptos adicionales a la programación orientada a objetos con JavaScriptConceptos adicionales a la programación orientada a objetos con JavaScript
Conceptos adicionales a la programación orientada a objetos con JavaScript
Francisco Javier Arce Anguiano
 
Constructor Y Destructor
Constructor Y DestructorConstructor Y Destructor
Constructor Y Destructor
Tecnologico
 
Clasesyobjetos
ClasesyobjetosClasesyobjetos
Clasesyobjetos
Christian Simbaña
 

Similar a Clases abstractas interfaces (20)

Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
 
Clases abstractas e interfaces en java
Clases abstractas e interfaces en javaClases abstractas e interfaces en java
Clases abstractas e interfaces en java
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Laboratorio clase abstract
Laboratorio clase abstractLaboratorio clase abstract
Laboratorio clase abstract
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
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
 
8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptx8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptx
 
JAVA 00 - TEMA 05 - HERENCIA
JAVA 00 - TEMA 05 - HERENCIAJAVA 00 - TEMA 05 - HERENCIA
JAVA 00 - TEMA 05 - HERENCIA
 
Laboratorio interfaces
Laboratorio interfacesLaboratorio interfaces
Laboratorio interfaces
 
secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf
 
2 3 3 Interfaces
2 3 3 Interfaces2 3 3 Interfaces
2 3 3 Interfaces
 
Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
 
Clases abstractas e interfaz
Clases abstractas e interfazClases abstractas e interfaz
Clases 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
 
Proyecto en android completado
Proyecto en android completadoProyecto en android completado
Proyecto en android completado
 
Alejandro Merizalde
Alejandro MerizaldeAlejandro Merizalde
Alejandro Merizalde
 
Programacion orientada a_objetos
Programacion orientada a_objetosProgramacion orientada a_objetos
Programacion orientada a_objetos
 
Conceptos adicionales a la programación orientada a objetos con JavaScript
Conceptos adicionales a la programación orientada a objetos con JavaScriptConceptos adicionales a la programación orientada a objetos con JavaScript
Conceptos adicionales a la programación orientada a objetos con JavaScript
 
Constructor Y Destructor
Constructor Y DestructorConstructor Y Destructor
Constructor Y Destructor
 
Clasesyobjetos
ClasesyobjetosClasesyobjetos
Clasesyobjetos
 

Último

CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
auxsoporte
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
Alejandrino Halire Ccahuana
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
YasneidyGonzalez
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
Demetrio Ccesa Rayme
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
YolandaRodriguezChin
 
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docxSESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
QuispeJimenezDyuy
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Demetrio Ccesa Rayme
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
pablomarin116
 
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
sandradianelly
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Demetrio Ccesa Rayme
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
jmorales40
 
True Mother's Speech at THE PENTECOST SERVICE..pdf
True Mother's Speech at THE PENTECOST SERVICE..pdfTrue Mother's Speech at THE PENTECOST SERVICE..pdf
True Mother's Speech at THE PENTECOST SERVICE..pdf
Mercedes Gonzalez
 
Sesión: El fundamento del gobierno de Dios.pdf
Sesión: El fundamento del gobierno de Dios.pdfSesión: El fundamento del gobierno de Dios.pdf
Sesión: El fundamento del gobierno de Dios.pdf
https://gramadal.wordpress.com/
 
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdfTexto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
ClaudiaAlcondeViadez
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Txema Gs
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
CESAR MIJAEL ESPINOZA SALAZAR
 
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptxCLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
LilianaRivera778668
 
evalaución de reforzamiento de cuarto de secundaria de la competencia lee
evalaución de reforzamiento de cuarto de secundaria de la competencia leeevalaución de reforzamiento de cuarto de secundaria de la competencia lee
evalaución de reforzamiento de cuarto de secundaria de la competencia lee
MaribelGaitanRamosRa
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
Profes de Relideleón Apellidos
 
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCIONCAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
MasielPMP
 

Último (20)

CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
 
corpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdfcorpus-christi-sesion-de-aprendizaje.pdf
corpus-christi-sesion-de-aprendizaje.pdf
 
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docxSESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
 
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
 
Portafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPNPortafolio de servicios Centro de Educación Continua EPN
Portafolio de servicios Centro de Educación Continua EPN
 
True Mother's Speech at THE PENTECOST SERVICE..pdf
True Mother's Speech at THE PENTECOST SERVICE..pdfTrue Mother's Speech at THE PENTECOST SERVICE..pdf
True Mother's Speech at THE PENTECOST SERVICE..pdf
 
Sesión: El fundamento del gobierno de Dios.pdf
Sesión: El fundamento del gobierno de Dios.pdfSesión: El fundamento del gobierno de Dios.pdf
Sesión: El fundamento del gobierno de Dios.pdf
 
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdfTexto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
 
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptxCLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
 
evalaución de reforzamiento de cuarto de secundaria de la competencia lee
evalaución de reforzamiento de cuarto de secundaria de la competencia leeevalaución de reforzamiento de cuarto de secundaria de la competencia lee
evalaución de reforzamiento de cuarto de secundaria de la competencia lee
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
 
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCIONCAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
 

Clases abstractas interfaces

  • 1. ESCUELA POLITECNICA DEL EJERCITO. PERALTA CEVALLOS ALEX PATRICIO PROGRAMACION I
  • 2. Una clase abstracta puede contener métodos no-abstractos pero al menos uno de los métodos debe ser declarado abstracto. Una clase que extiende a una clase En esta clase se declara la abstracta debe implementar los existencia de métodos pero métodos abstractos (escribir el no la implementación de código) o bien volverlos a declarar CLASES dichos métodos (o sea, las como abstractos, con lo que ella ABSTRACTAS. llaves { } y las sentencias misma se convierte también en entre ellas) clase abstracta. Java proporciona las clases y métodos abstractos. 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).
  • 3. Declaración e implementación de métodos abstractos Por ejemplo, una estructura de clases para manipular figuras geométricas. Podríamos pensar en tener una clase genérica, que podría llamarse FiguraGeometrica y una serie de clases que extienden a la anterior que podrían ser Circulo, Polígono, etc. Podría haber un método dibujar dado que sobre todas las figuras puede llevarse a cabo esta acción, pero las operaciones concretas para llevarla a cabo dependen del tipo de figura en concreto (de su clase). Por otra parte la acción dibujar no tiene sentido para la clase genérica FiguraGeometrica, porque esta clase representa una abstracción del conjunto de figuras posibles. • Siguiendo con el ejemplo del apartado anterior, se puede escribir: • abstract class FiguraGeometrica { ... abstract void dibujar(); ... } class Circulo extends FiguraGeometrica { ... void dibujar() { // codigo para dibujar Circulo ... } } La clase abstracta se declara simplemente con el modificador abstract en su declaración. Los métodos abstractos se declaran también con el mismo modificador, declarando el método pero sin implementarlo (sin el bloque de código encerrado entre {}). La clase derivada se declara e implementa de forma normal, como cualquier otra. Sin embargo si no declara e implementa los métodos abstractos de la clase base (en el ejemplo el método dibujar) el compilador genera un error indicando que no se han implementado todos los métodos abstractos y que, o bien, se implementan, o bien se declara la clase abstracta.
  • 4. Referencias y objetos abstractos • Se pueden crear referencias a clases abstractas como cualquier otra. No hay ningún problema en poner: 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 utilizando el up-casting visto en el capítulo dedicado a la Herencia si se puede escribir: 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. En nuestro ejemplo se llamará al método dibujar de la clase Circulo.
  • 5.
  • 6.
  • 7. Una interface es una variante de una clase abstracta con la condición de que todos sus métodos deben ser abstractos. Si la interface va a tener atributos, éstos deben llevar las palabras reservadas static final y con un valor inicial ya que funcionan como constantes por lo que, por convención, su nombre va en mayúsculas. interface Nomina { public static final String EMPRESA = "Patito, S. A."; public void detalleDeEmpleado(Nomina obj); } INTERFACES Una clase implementa una o más interfaces (separadas con comas ",") con la palabra reservada implements. Con el uso de interfaces se puede "simular" la herencia múltiple que Java no soporta. class Empleado implements Nomina { ... }
  • 8. EJEMPLO • En este ejemplo, la clase Empleado tiene una clase padre llamada Object (implícitamente) e implementa a la interface Nomina, quedando el diagrama de clases de la siguiente manera: La clase que implementa una interface tiene dos opciones: 1) Implementar todos los métodos de la interface. 2) Implementar sólo algunos de los métodos de la interface pero esa clase debe ser una clase abstracta (debe declararse con la palabra abstract).
  • 9. INTERFACES • Solo declaran comportamiento -Se utiliza la palabra clave interface - Por defecto todos sus métodos son públicos y abstractos. -No implementan el comportamiento • Por defecto todos sus atributos son públicos, constantes y de clase. • Por legibilidad normalmente los declaramos static y final. • Permite simular algunos aspectos de la herencia múltiple -define un tipo de datos -posibilita el enlace dinámico. • Otras clases pueden implementar un interfaz -Cualquier clase implemente un interfaz debe definir todos los métodos de dicho interfaz -Si la clase no proporciona la implementación para todos los métodos del interfaz debe ser declarada como abstracta
  • 10. Extensión de interfaces • Se puede definir un interface que especialice a otro interface mediante extends. • Es similar a la herencia de clases. • No obstante un interface puede extender a varios interfaces a la vez
  • 11. Resumen de interfaces • Los interfaces sirven para:  Declarar métodos que serán implementados por una o mas clases.  Determinar la interface de programación de un objeto, sin mostrar el cuerpo de la clase.  Capturar similitudes entre clases no relacionadas, sin forzar una relación entre ellas.  Describir objetos “tipo-función”, que podrán ser utilizados como argumentos al invocar métodos sobre objetos.