Clases abstractas e interfaces

  • 2,283 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,283
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
64
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Marco López
  • 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étodospero 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 noabstractos pero al menos uno de los métodos debeser 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 (Noabstractos).- La clase abstracta puede definir atributos comunes a sus subclases.- En el sistema no se crean ejemplares de la clase abstracta porque noserí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.
  • 5. ESTRUCTURA
  • 6. CUANDO USAR METODOS Y CLASES ABSTRACTAS• Los métodos abstractos son normalmente declaradosdonde dos o más subclases se espera que cumplan unpapel similar en diferentes modos a través de diferentesimplementaciones (polimorfismo)– Las subclases extienden la misma clase abstracta yproporcionan diferentes implementaciones para losmétodo abstractos• Usar clases abstractas para definir tipos amplios decomportamientos en la raíz de la jerarquía de clases y usarsus subclases para proporcionar los detalles deimplementación de la clase abstracta
  • 7. EJEMPLOComo ejemplo tomaremos dos figuras geométricas, el Rectángulo y elTriangulo rectángulo, para el ejemplo sólo consideraremos doscaracterísticas similares: el ancho y el alto, por lo que podemos crearuna súper clase Figura geométrica con estas dos características y susmétodos correspondientes, además del métodos getArea() quedevolverá el área de la Figura. Pero, se presenta un problema, elcálculo del área del Rectángulo es diferente al cálculo del área delTriangulo. Área del Rectángulo = ancho X alto Área del Triangulo = (ancho X alto)/2Por lo tanto, el método getArea() deberá ser abstracto, por lo cual, laclase Figura también deberá ser abstracta.
  • 8. CONCLUSIONES DE LA CASES ABSTRACTAS1.-Este tipo de datos es privado para todas aquellasclases que no son derivadas, pero público para unaclase derivada de la clase en la que se ha definido lavariable como protected.2.-Una clase abstracta no se puede instanciar (es decirno se pueden volver en objetos) pero si se puedeheredar y las clases hijas serán las encargadas deagregar la funcionalidad a los métodos abstractos.
  • 9. INTERFACESDEFINICION:Una interface es una variante de una clase abstractacon la condición de que todos sus métodos deben serabstractos. Si la interface va a tener atributos, éstosdeben llevar las palabras reservadas static final y conun valor inicial ya que funcionan como constantespor lo que, por convención, su nombre va enmayúsculas.EJEMPLO:
  • 10. CARACTERISTICAS• Define una forma estándar y pública de especificar elcomportamiento de clases (define un contrato)• Todos lo métodos de una interface son métodosabstractos (firmas de métodos sin implementación)• Una clase concreta debe implementar (implements) lainterface, es decir, implementar todos los métodos• Permite la implementación de clases concomportamientos comunes, sin importar su ubicaciónen la jerarquía de clases
  • 11. DECLARACION DE INTERFACES
  • 12. INPLEMENTACION DE INTERFACES
  • 13. CONSTANTES EN INTERFACES• Las interfaces no pueden tener variables deinstancia, pero es legal especificar constantes• Todas las variables en una interface sonautomáticamente public static final por lo que sepuede omitir en la declaración
  • 14. UTILIZACION DE INTERFACES• Para revelar la interface de la programación de unobjeto (funcionalidad del objeto) sin revelar suimplementación (encapsulado)– La implementación puede cambiar sin afectar elllamador de la interface, que no necesita laimplementación en tiempo de compilación• Para tener implementación de métodos similares(comportamientos) en clases sin relacionar• Para modelar herencia múltiple, imponiendoconjuntos múltiples de comportamientos a la clase
  • 15. DIFERENCIAS ENTRE UNA CLASE ABSTRACTA Y UNA INTERFAZ• Todos los métodos de una interface son métodosabstractos mientras algunos métodos de una claseabstracta son métodos abstractos– Los métodos abstractos de una clase abstracta tienen elmodificador abstract• Una interfaz puede definir constantes mientras queuna clase abstracta puede tener campos• Las interfaces no tienen ninguna relación de herenciadirecta con una clase particular, se definenindependientemente
  • 16. HERENCIA ENTRE INTERFACES
  • 17. BIBLIOGRAFIAhttp://www2.uah.es/jcaceres/capsulas/java_abstractas.pdfhttp://eii.ucv.cl/pers/guidi/cursos/estructuras/pdf/Java-Clases%20Abstractas%20e%20Interfaces.pdfhttp://www.unalmed.edu.co/~jaguzman/docencia_archivos/objetos/diapositivas/8-Clases%20abstractas.pdfwww2.uah.es/jcaceres/capsulas/java_abstractas.pdf