T14 - Clases abstractas e interfaces

910 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
910
On SlideShare
0
From Embeds
0
Number of Embeds
54
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

T14 - Clases abstractas e interfaces

  1. 1. Tema – 14Clases abstractas, clases finales e interfaces
  2. 2. 14.1. Clases abstractas• Las clases abstractas son clases cuya definición está incompleta, es decir, tienen métodos abstractos (aunque se pueden crear sin ellos). – Un método abstracto es aquel que no tiene un cuerpo (está vacío). Se define con el modificador abstract.• Las clases abstractas se crean con el fin de ser heredadas por otras clases que implementen sus métodos abstractos.• Las clases abstractas se declaran de la siguiente forma: abstract class NombreClasePROGRAMACIÓN – Daniel Santiago 2
  3. 3. 14.1. Clases abstractas• Propiedades de una clase abstracta: – Se pueden declarar objetos con este tipo de clases, pero no se pueden instanciar (crear). – Una clase abstracta debería tener como mínimo un método abstracto. Si no es así, no tiene sentido que dicha clase sea abstracta. – Una clase abstracta puede tener métodos que no sean abstractos. La clase que hereda dicha clase no está obligada a implementar los métodos que no sean abstractos.PROGRAMACIÓN – Daniel Santiago 3
  4. 4. 14.1. Clases abstractas• Propiedades de un método abstracto: – No pueden tener cuerpo. – No pueden estar definidos en una clase que no sea abstracta.PROGRAMACIÓN – Daniel Santiago 4
  5. 5. 14.1. Clases abstractas• Ejemplo: abstract class Figura{ private int posX; private int posY; public Figura(int posX, int posY){ this.posX = posX; this.posY = posY; } public abstract dibujar(); }PROGRAMACIÓN – Daniel Santiago 5
  6. 6. 14.1. Clases abstractas• Ejemplo: class Cuadrado extends Figura{ public Cuadrado(int posX, int posY){ super(posX, posY); } public abstract dibujar(){ //Código aquí } }PROGRAMACIÓN – Daniel Santiago 6
  7. 7. 14.1. Clases abstractas• En el ejemplo tenemos la clase abstracta “Figura” que tiene dos atributos y un constructor, además de un método abstracto “dibujar”. La clase “Cuadrado” hereda de la clase “Figura” e implementa el método abstracto “dibujar”.PROGRAMACIÓN – Daniel Santiago 7
  8. 8. 14.1. Clases abstractas• ¿Cómo instanciamos un objeto del ejemplo anterior? Figura f1 = new Figura (10, 10); – La línea anterior provocaría un error, ya que no se pueden instanciar objetos de una clase abstracta. La forma correcta sería: Cuadrado c1 = new Cuadrado (10, 10);PROGRAMACIÓN – Daniel Santiago 8
  9. 9. 14.2. Clases finales• El modificador final se usa en la definición de clases para evitar que dicha clase se herede por otras.• Los métodos también pueden llevar el modificador final, indicando que dicho método no se puede reescribir. Esto es útil en herencias, si no queremos que las clases que hereden un método puedan reescribirlo.PROGRAMACIÓN – Daniel Santiago 9
  10. 10. 14.3. Interfaces• Las interfaces se usan para definir el comportamiento que debe tener una clase.• Una interfaz es muy parecida a una clase abstracta. La diferencia está en que en una interfaz todos los métodos deben ser abstractos.• A los métodos de una interfaz no hace falta ponerles el modificar abstract. Ya lo llevan implícito.PROGRAMACIÓN – Daniel Santiago 10
  11. 11. 14.3. Interfaces• Una interfaz se declara de la siguiente forma: public interface NombreInterfaz{ … }• Las interfaces no se heredan, se implementan. class NombreClase implements NombreInterfaz{…} – Con el código anterior se crea una clase que implementará todos los métodos de la interfaz. – En el caso de que la clase no implementara todos los métodos de la interfaz, dicha clase debería declararse como abstracta.PROGRAMACIÓN – Daniel Santiago 11
  12. 12. 14.3. Interfaces• Las interfaces posibilitan la herencia múltiple en Java, ya que podemos hacer que una clase implemente varias interfaces. class NombreClare implemente NombreInterfaz1, NombreInterfaz2, NombreInterfaz3, …PROGRAMACIÓN – Daniel Santiago 12
  13. 13. 14.3. Interfaces• Propiedades de una interfaz: – Los atributos de una interfaz deben tener un valor, por tanto hay que declararlos con los modificadores public, static y final. – Todos los métodos de una interfaz son public. – Una interfaz no puede tener constructor. – Todos los métodos que una clase implementa de una interfaz deben ser public. – Se pueden crear herencias entre interfaces con la palabra extends (igual que con clases).PROGRAMACIÓN – Daniel Santiago 13

×