clases abstractas pc
TRANSCRIPT
![Page 1: Clases Abstractas Pc](https://reader034.vdocuments.co/reader034/viewer/2022042518/55ae5bfc1a28abb40e8b460e/html5/thumbnails/1.jpg)
![Page 2: Clases Abstractas Pc](https://reader034.vdocuments.co/reader034/viewer/2022042518/55ae5bfc1a28abb40e8b460e/html5/thumbnails/2.jpg)
QUE ES UNA CLASE ABSTRACTA
Es una clase que no se puede instanciar, se usa
únicamente para definir subclases.
![Page 3: Clases Abstractas Pc](https://reader034.vdocuments.co/reader034/viewer/2022042518/55ae5bfc1a28abb40e8b460e/html5/thumbnails/3.jpg)
CASOS DE UTILIZACION Cuando hay un conjunto de clases que comparten las
mismas operaciones pero difieren en su implementación.
Cuando un marco de aplicación o conjunto de clases relacionadas contiene parte de lo que debe realizarse, mientras que la otra parte la debe proporcionar el usuario.
Para impedir que el usuario cree objetos de una cierta clase.
![Page 4: Clases Abstractas Pc](https://reader034.vdocuments.co/reader034/viewer/2022042518/55ae5bfc1a28abb40e8b460e/html5/thumbnails/4.jpg)
UTILIZACION DE LA CLASE ABSTRACTA EN JAVA
Java incluye interfaces, un tipo abstracto que puede contener cabeceras de métodos y constantes (variables finales), pero no
implementación de métodos o miembros de datos no-finales. Una clase abstracta en Java
puede implementar interfaces y definir algunas cabeceras de método al tiempo que
mantiene otros métodos abstractos.
![Page 5: Clases Abstractas Pc](https://reader034.vdocuments.co/reader034/viewer/2022042518/55ae5bfc1a28abb40e8b460e/html5/thumbnails/5.jpg)
CUANDO ES UNA CLASE ABSTRACTA
Es cuando uno de sus métodos no tiene implementación (en java, el método abstracto se
etiqueta con la palabra reservada abstract).
![Page 6: Clases Abstractas Pc](https://reader034.vdocuments.co/reader034/viewer/2022042518/55ae5bfc1a28abb40e8b460e/html5/thumbnails/6.jpg)
CUANDO SE UTILIZAN LAS CLASES ABSTRACTAS
Cuando deseamos definir una abstracción que englobe
objetos de distintos tipos y queremos hacer uso del
polimorfismo.
![Page 7: Clases Abstractas Pc](https://reader034.vdocuments.co/reader034/viewer/2022042518/55ae5bfc1a28abb40e8b460e/html5/thumbnails/7.jpg)
EJEMPLOFigura
# X# Y
+área()
Cuadrado
-Lado
+área()
Circulo
-Radio
+área()
![Page 8: Clases Abstractas Pc](https://reader034.vdocuments.co/reader034/viewer/2022042518/55ae5bfc1a28abb40e8b460e/html5/thumbnails/8.jpg)
Public abstract class Figura
{
protected double x;
protected double y;
public Figura (double x, double y)
{
this. x = x;
this. y = y;
}
public abstract double área ();
}
Public class Circulo extends Figura
{
prívate double radio;
public Circulo(double x, double y, double radio)
{
súper (x,y);
this.radio = radio;
}
public double área ()
{
return Math.PI*radio*radio;
}
}
![Page 9: Clases Abstractas Pc](https://reader034.vdocuments.co/reader034/viewer/2022042518/55ae5bfc1a28abb40e8b460e/html5/thumbnails/9.jpg)
Public class Cuadrado extends Figura
{
prívate double lado;
public Cuadrado ( double x, double y, double lado)
{
súper (x,y);
this.lado = lado;
}
public double área ()
{
return lado*lado;
}
}
![Page 10: Clases Abstractas Pc](https://reader034.vdocuments.co/reader034/viewer/2022042518/55ae5bfc1a28abb40e8b460e/html5/thumbnails/10.jpg)
INTERFAZUna interfaz es una clase completamente abstracta.
Figura
+área()
Cuadrado
-lado
+área()
Circulo
-radio
+área()
![Page 11: Clases Abstractas Pc](https://reader034.vdocuments.co/reader034/viewer/2022042518/55ae5bfc1a28abb40e8b460e/html5/thumbnails/11.jpg)
Public interface Figura
{
public double área ();
}
![Page 12: Clases Abstractas Pc](https://reader034.vdocuments.co/reader034/viewer/2022042518/55ae5bfc1a28abb40e8b460e/html5/thumbnails/12.jpg)
En java, las interfaces se declaran con la palabra reservada interface de manera similar a como se declaran las clases abstractas.
en la declaración de una interfaz, lo único que puede aparecer son declaraciones de métodos (su nombre y signatura, sin implementación) y definiciones de constantes simbólicas.
Una interfaz no encapsula datos, solo define cuales son los métodos que han de implementar los objetos de aquellas clases que implementan la interfaz.
En java, para indicar que una clase implementa una interfaz se utiliza la palabra reservada implements.
la clase debe entonces implementar todos los métodos definidos por la interfaz o declararse, a su vez, como una clase abstracta (lo que no suele ser especialmente útil):
abstract class SinArea implements Figura{}
![Page 13: Clases Abstractas Pc](https://reader034.vdocuments.co/reader034/viewer/2022042518/55ae5bfc1a28abb40e8b460e/html5/thumbnails/13.jpg)
HERENCIA MULTIPLE DE INTERFACES
una clase puede implementar varias interfaces simultáneamente, pese a que, en java, una clase solo puede
heredar de otra clase (herencia simple de implementación, múltiples de
interfaces).
![Page 14: Clases Abstractas Pc](https://reader034.vdocuments.co/reader034/viewer/2022042518/55ae5bfc1a28abb40e8b460e/html5/thumbnails/14.jpg)
EJEMPLO
Rotable
+rotar()
Figura
+área()
Dibujable
+dibujar()
Cuadrado
-lado
+área()+dibujar()+rotar()
Circulo
-radio
+área()+dibujar()
![Page 15: Clases Abstractas Pc](https://reader034.vdocuments.co/reader034/viewer/2022042518/55ae5bfc1a28abb40e8b460e/html5/thumbnails/15.jpg)
Public abstract Figura
{
public abstract double área ();
}
Public interface Dibujable
{
public void Dibujar ();
}
Public interface Rotable
{
public void rotar (double grados);
}
Public class Circulo extends Figura
implement Dibujable
Public class Cuadrado extends Figura
implement Dibujable, rotable