SlideShare una empresa de Scribd logo
1 de 18
Marco López
Clases abstractas
 Definición: Clases definidas en la jerarquía que simplemente
 recogen las características comunes de otra serie de clases (
 sus descendientes), pero que no se van a o no se deben
 utilizar para crear ejemplares.


 Una clase que declara la existencia de métodos
pero no la implementación de dichos métodos ,
estos métodos no hacen nada, solo son declarados,
se considera una clase abstracta.
Una clase abstracta puede contener métodos no
abstractos pero al menos uno de los métodos debe
ser abstracto.
Características de una
             Clase abstracta:
- Modela el comportamiento común de sus clases derivadas.
- Establece métodos que necesariamente han de ser implementados
  por sus subclases (las clases derivadas)

METODOS ABSTRACTOS.

- Métodos sin código, se declaran pero no se definen
- Deben definirse en alguna subclase
- Si una subclase no implementa un método abstracto heredado debe
   ser abstracta también
- Un método abstracto debe pertenecer a una clase abstracta
- Implementa métodos que son comunes a todas sus subclases (No
abstractos).
- La clase abstracta puede definir atributos comunes a sus subclases.
- En el sistema no se crean ejemplares de la clase abstracta porque no
serían objetos con existencia propia en el mundo real.
REPRESENTACION GRÁFICA




 Clases Abstractas: Objeto Grafico y Paralelogramo
 En el programa de dibujo sólo se van a crear objetos
 gráficos concretos de : puntos, elipses, círculos,
 cuadrados, rectángulos, rombos o romboides.
ESTRUCTURA
CUANDO USAR METODOS Y
        CLASES ABSTRACTAS

• Los métodos abstractos son normalmente declarados
donde dos o más subclases se espera que cumplan un
papel similar en diferentes modos a través de diferentes
implementaciones (polimorfismo)
– Las subclases extienden la misma clase abstracta y
proporcionan diferentes implementaciones para los
método abstractos
• Usar clases abstractas para definir tipos amplios de
comportamientos en la raíz de la jerarquía de clases y usar
sus subclases para proporcionar los detalles de
implementación de la clase abstracta
EJEMPLO
Como ejemplo tomaremos dos figuras geométricas, el Rectángulo y el
Triangulo rectángulo, para el ejemplo sólo consideraremos dos
características similares: el ancho y el alto, por lo que podemos crear
una súper clase Figura geométrica con estas dos características y sus
métodos correspondientes, además del métodos getArea() que
devolverá el área de la Figura. Pero, se presenta un problema, el
cálculo del área del Rectángulo es diferente al cálculo del área del
Triangulo.


            Área del Rectángulo = ancho X alto
            Área del Triangulo = (ancho X alto)/2

Por lo tanto, el método getArea() deberá ser abstracto, por lo cual, la
clase Figura también deberá ser abstracta.
CONCLUSIONES DE LA
       CASES ABSTRACTAS
1.-Este tipo de datos es privado para todas aquellas
clases que no son derivadas, pero público para una
clase derivada de la clase en la que se ha definido la
variable como protected.

2.-
Una clase abstracta no se puede instanciar (es decir
no se pueden volver en objetos) pero si se puede
heredar y las clases hijas serán las encargadas de
agregar la funcionalidad a los métodos abstractos.
INTERFACES
DEFINICION:

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.
EJEMPLO:
CARACTERISTICAS
• Define una forma estándar y pública de especificar el
comportamiento de clases (define un contrato)
• Todos lo métodos de una interface son métodos
abstractos (firmas de métodos sin implementación)
• Una clase concreta debe implementar (implements) la
interface, es decir, implementar todos los métodos
• Permite la implementación de clases con
comportamientos comunes, sin importar su ubicación
en la jerarquía de clases
DECLARACION DE INTERFACES
INPLEMENTACION DE
    INTERFACES
CONSTANTES EN
            INTERFACES
• Las interfaces no pueden tener variables de
instancia, pero es legal especificar constantes
• Todas las variables en una interface son
automáticamente public static final por lo que se
puede omitir en la declaración
UTILIZACION DE INTERFACES
• Para revelar la interface de la programación de un
objeto (funcionalidad del objeto) sin revelar su
implementación (encapsulado)
– La implementación puede cambiar sin afectar el
llamador de la interface, que no necesita la
implementación en tiempo de compilación
• Para tener implementación de métodos similares
(comportamientos) en clases sin relacionar
• Para modelar herencia múltiple, imponiendo
conjuntos múltiples de comportamientos a la clase
DIFERENCIAS ENTRE UNA CLASE
  ABSTRACTA Y UNA INTERFAZ
• Todos los métodos de una interface son métodos
abstractos mientras algunos métodos de una clase
abstracta son métodos abstractos
– Los métodos abstractos de una clase abstracta tienen el
modificador abstract
• Una interfaz puede definir constantes mientras que
una clase abstracta puede tener campos
• Las interfaces no tienen ninguna relación de herencia
directa con una clase particular, se definen
independientemente
HERENCIA ENTRE INTERFACES
BIBLIOGRAFIA

http://www2.uah.es/jcaceres/capsulas/java_abstractas.pdf

http://eii.ucv.cl/pers/guidi/cursos/estructuras/pdf/Java-
Clases%20Abstractas%20e%20Interfaces.pdf
http://www.unalmed.edu.co/~jaguzman/docencia_archivos/objeto
s/diapositivas/8-Clases%20abstractas.pdf

www2.uah.es/jcaceres/capsulas/java_abstractas.pdf

Más contenido relacionado

La actualidad más candente

Requerimiento funcional y no funcional
Requerimiento funcional y no funcional Requerimiento funcional y no funcional
Requerimiento funcional y no funcional CristobalFicaV
 
Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herenciajlmanmons
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenKarlytoz_36
 
Metodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentesMetodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentesEmmanuel Fontán
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetosjose_rob
 
Arquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositórioArquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositóriorehoscript
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetosstill01
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesbasilioj
 
Modelado basados en escenarios
Modelado basados en escenariosModelado basados en escenarios
Modelado basados en escenariosUCATEBA
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()Clara Patricia Avella Ibañez
 
Normas y Estándares de calidad para el desarrollo de Software
Normas y Estándares de calidad para el desarrollo de SoftwareNormas y Estándares de calidad para el desarrollo de Software
Normas y Estándares de calidad para el desarrollo de SoftwareEvelinBermeo
 
Programación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresProgramación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresAlvaro Enrique Ruano
 
Análisis y diseño orientado a objetos
Análisis y diseño orientado a objetosAnálisis y diseño orientado a objetos
Análisis y diseño orientado a objetosChristian Leon
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetosyoiner santiago
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetosClara Patricia Avella Ibañez
 

La actualidad más candente (20)

Requerimiento funcional y no funcional
Requerimiento funcional y no funcional Requerimiento funcional y no funcional
Requerimiento funcional y no funcional
 
Diseño de la interfaz de usuario
Diseño de la interfaz de usuarioDiseño de la interfaz de usuario
Diseño de la interfaz de usuario
 
Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herencia
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
 
6 Curso de POO en Java - clases y objetos
6  Curso de POO en Java - clases y objetos6  Curso de POO en Java - clases y objetos
6 Curso de POO en Java - clases y objetos
 
Requerimientos del software
Requerimientos del software Requerimientos del software
Requerimientos del software
 
DIAGRAMAS DE CLASE
DIAGRAMAS DE CLASEDIAGRAMAS DE CLASE
DIAGRAMAS DE CLASE
 
Metodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentesMetodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentes
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 
Arquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositórioArquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositório
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relaciones
 
Modelado basados en escenarios
Modelado basados en escenariosModelado basados en escenarios
Modelado basados en escenarios
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()
 
Estilos Arquitectonicos-Capas
Estilos Arquitectonicos-CapasEstilos Arquitectonicos-Capas
Estilos Arquitectonicos-Capas
 
Normas y Estándares de calidad para el desarrollo de Software
Normas y Estándares de calidad para el desarrollo de SoftwareNormas y Estándares de calidad para el desarrollo de Software
Normas y Estándares de calidad para el desarrollo de Software
 
Programación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructoresProgramación Orientada a Objetos - constructores y destructores
Programación Orientada a Objetos - constructores y destructores
 
Análisis y diseño orientado a objetos
Análisis y diseño orientado a objetosAnálisis y diseño orientado a objetos
Análisis y diseño orientado a objetos
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos
 

Destacado (11)

Clases abstractas e interfaces en java
Clases abstractas e interfaces en javaClases abstractas e interfaces en java
Clases abstractas e interfaces en java
 
Java interfaces
Java interfacesJava interfaces
Java interfaces
 
Interfaces en Java
Interfaces en JavaInterfaces en Java
Interfaces en Java
 
Interfaces en Java
Interfaces en JavaInterfaces en Java
Interfaces en Java
 
Poo Java
Poo JavaPoo Java
Poo Java
 
¿Qué es una interface en java?
¿Qué es una interface en java?¿Qué es una interface en java?
¿Qué es una interface en java?
 
POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
 
Interfaces en java
Interfaces en javaInterfaces en java
Interfaces 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
 
Java Generics
Java GenericsJava Generics
Java Generics
 
Generics
GenericsGenerics
Generics
 

Similar a Clases abstractas e interfaces

Clases abstractas interfaces
Clases abstractas interfacesClases abstractas interfaces
Clases abstractas interfacesAlexitoPeralta
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfacesEduardo Lapo
 
2 3 3 Interfaces
2 3 3 Interfaces2 3 3 Interfaces
2 3 3 InterfacesUVM
 
Clases abstractas e interfaces en java
Clases abstractas e interfaces en java Clases abstractas e interfaces en java
Clases abstractas e interfaces en java Nathy_A
 
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
 
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Kositha Jimhiz G
 
DAW - Desarrollo de clases
DAW - Desarrollo de clasesDAW - Desarrollo de clases
DAW - Desarrollo de clasesvay82
 
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
 
Proyecto en android completado
Proyecto en android completadoProyecto en android completado
Proyecto en android completadoKai Exo
 
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.pptxjuan gonzalez
 

Similar a Clases abstractas e interfaces (20)

Clases abstractas interfaces
Clases abstractas interfacesClases abstractas interfaces
Clases abstractas interfaces
 
Benalcazar esteban
Benalcazar estebanBenalcazar esteban
Benalcazar esteban
 
Laboratorio clase abstract
Laboratorio clase abstractLaboratorio clase abstract
Laboratorio clase abstract
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfaces
 
2 3 3 Interfaces
2 3 3 Interfaces2 3 3 Interfaces
2 3 3 Interfaces
 
Clases abstractas e interfaces en java
Clases abstractas e interfaces en java Clases abstractas e interfaces en java
Clases abstractas e interfaces en java
 
JAVA 00 - TEMA 05 - HERENCIA
JAVA 00 - TEMA 05 - HERENCIAJAVA 00 - TEMA 05 - HERENCIA
JAVA 00 - TEMA 05 - HERENCIA
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Polimorfismo
PolimorfismoPolimorfismo
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
 
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
Clasesabstractaseinterfacesalexandraperez 121220190613-phpapp02
 
Clases abs e interfaces
Clases abs e interfacesClases abs e interfaces
Clases abs e interfaces
 
DAW - Desarrollo de clases
DAW - Desarrollo de clasesDAW - Desarrollo de clases
DAW - Desarrollo de clases
 
Programacion orientada a_objetos
Programacion orientada a_objetosProgramacion orientada a_objetos
Programacion orientada a_objetos
 
Leccion 9 Java
Leccion 9 JavaLeccion 9 Java
Leccion 9 Java
 
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
 
Proyecto en android completado
Proyecto en android completadoProyecto en android completado
Proyecto en android completado
 
JAVA- basico
JAVA- basicoJAVA- basico
JAVA- basico
 
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
 
Interfaces en java
Interfaces en javaInterfaces en java
Interfaces en java
 

Clases abstractas e interfaces

  • 2. Clases abstractas Definición: Clases definidas en la jerarquía que simplemente recogen las características comunes de otra serie de clases ( sus descendientes), pero que no se van a o no se deben utilizar para crear ejemplares. Una clase que declara la existencia de métodos pero no la implementación de dichos métodos , estos métodos no hacen nada, solo son declarados, se considera una clase abstracta. Una clase abstracta puede contener métodos no abstractos pero al menos uno de los métodos debe ser abstracto.
  • 3. Características de una Clase abstracta: - Modela el comportamiento común de sus clases derivadas. - Establece métodos que necesariamente han de ser implementados por sus subclases (las clases derivadas) METODOS ABSTRACTOS. - Métodos sin código, se declaran pero no se definen - Deben definirse en alguna subclase - Si una subclase no implementa un método abstracto heredado debe ser abstracta también - Un método abstracto debe pertenecer a una clase abstracta - Implementa métodos que son comunes a todas sus subclases (No abstractos). - La clase abstracta puede definir atributos comunes a sus subclases. - En el sistema no se crean ejemplares de la clase abstracta porque no serían objetos con existencia propia en el mundo real.
  • 4. REPRESENTACION GRÁFICA Clases Abstractas: Objeto Grafico y Paralelogramo En el programa de dibujo sólo se van a crear objetos gráficos concretos de : puntos, elipses, círculos, cuadrados, rectángulos, rombos o romboides.
  • 6. CUANDO USAR METODOS Y CLASES ABSTRACTAS • Los métodos abstractos son normalmente declarados donde dos o más subclases se espera que cumplan un papel similar en diferentes modos a través de diferentes implementaciones (polimorfismo) – Las subclases extienden la misma clase abstracta y proporcionan diferentes implementaciones para los método abstractos • Usar clases abstractas para definir tipos amplios de comportamientos en la raíz de la jerarquía de clases y usar sus subclases para proporcionar los detalles de implementación de la clase abstracta
  • 7. EJEMPLO Como ejemplo tomaremos dos figuras geométricas, el Rectángulo y el Triangulo rectángulo, para el ejemplo sólo consideraremos dos características similares: el ancho y el alto, por lo que podemos crear una súper clase Figura geométrica con estas dos características y sus métodos correspondientes, además del métodos getArea() que devolverá el área de la Figura. Pero, se presenta un problema, el cálculo del área del Rectángulo es diferente al cálculo del área del Triangulo. Área del Rectángulo = ancho X alto Área del Triangulo = (ancho X alto)/2 Por lo tanto, el método getArea() deberá ser abstracto, por lo cual, la clase Figura también deberá ser abstracta.
  • 8.
  • 9. CONCLUSIONES DE LA CASES ABSTRACTAS 1.-Este tipo de datos es privado para todas aquellas clases que no son derivadas, pero público para una clase derivada de la clase en la que se ha definido la variable como protected. 2.- Una clase abstracta no se puede instanciar (es decir no se pueden volver en objetos) pero si se puede heredar y las clases hijas serán las encargadas de agregar la funcionalidad a los métodos abstractos.
  • 10. INTERFACES DEFINICION: 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. EJEMPLO:
  • 11. CARACTERISTICAS • Define una forma estándar y pública de especificar el comportamiento de clases (define un contrato) • Todos lo métodos de una interface son métodos abstractos (firmas de métodos sin implementación) • Una clase concreta debe implementar (implements) la interface, es decir, implementar todos los métodos • Permite la implementación de clases con comportamientos comunes, sin importar su ubicación en la jerarquía de clases
  • 13. INPLEMENTACION DE INTERFACES
  • 14. CONSTANTES EN INTERFACES • Las interfaces no pueden tener variables de instancia, pero es legal especificar constantes • Todas las variables en una interface son automáticamente public static final por lo que se puede omitir en la declaración
  • 15. UTILIZACION DE INTERFACES • Para revelar la interface de la programación de un objeto (funcionalidad del objeto) sin revelar su implementación (encapsulado) – La implementación puede cambiar sin afectar el llamador de la interface, que no necesita la implementación en tiempo de compilación • Para tener implementación de métodos similares (comportamientos) en clases sin relacionar • Para modelar herencia múltiple, imponiendo conjuntos múltiples de comportamientos a la clase
  • 16. DIFERENCIAS ENTRE UNA CLASE ABSTRACTA Y UNA INTERFAZ • Todos los métodos de una interface son métodos abstractos mientras algunos métodos de una clase abstracta son métodos abstractos – Los métodos abstractos de una clase abstracta tienen el modificador abstract • Una interfaz puede definir constantes mientras que una clase abstracta puede tener campos • Las interfaces no tienen ninguna relación de herencia directa con una clase particular, se definen independientemente