0% encontró este documento útil (0 votos)
169 vistas10 páginas

Clases Abstractas y Concretas

Existen dos tipos de clases: clases concretas y clases abstractas. Las clases concretas definen completamente sus atributos, constructores y métodos, mientras que las clases abstractas pueden declarar métodos sin implementarlos, lo que permite que sean extendidas por subclases concretas. Las subclases de una clase abstracta deben implementar todos los métodos abstractos de la superclase. Las clases abstractas no pueden ser instanciadas directamente.

Cargado por

Manuel
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
169 vistas10 páginas

Clases Abstractas y Concretas

Existen dos tipos de clases: clases concretas y clases abstractas. Las clases concretas definen completamente sus atributos, constructores y métodos, mientras que las clases abstractas pueden declarar métodos sin implementarlos, lo que permite que sean extendidas por subclases concretas. Las subclases de una clase abstracta deben implementar todos los métodos abstractos de la superclase. Las clases abstractas no pueden ser instanciadas directamente.

Cargado por

Manuel
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Tipos de clases

Clases concretas
Es una clase en donde todo esta definido

Es decir atributos, constructores, métodos


Clases abstractas
● clases cuya descripción es incompleta
● una clase abstracta declara métodos, pero no necesariamente tiene que
implementarlos, es decir no proporciona la implementación de tdos sus
métodos
● Los métodos no implementados se declaran como (abstract)
● Una clase con un método abstracto DEBEN declararse como abstracto; pero
una clase puede declararse como abstracta aunque no tenga métodos
abstractos
Form

xpos
ypos
color

dibuja(); //metodo abstracto


setcolor(int);

Circulo Rectangulo
radio altura
anchura
setRadio()
setAltura
public abstract class Form {

private int xpos, ypos;

private int color;

Form{ Form obj = new Form(); //NO SE pUEDE

abstract void dibuja(); //define un método abstracto

void setColor(int color1){

color=color1;

}
class Circulo extends Form{ class Rectangulo extends Form{

private int radio; private int anchura, altura;

void dibuja(){ void dibuja(){

____ YYYYY

____ VVVV

} }

void setRadio{ void setAltura(){

___ ___

} }

}//Fin de la clase Circulo }//fin de la clase Rectangulo


● Las subclases de una clase abstracta deben
○ sobrescribir todos los métodos abstractos de la superclase o ser declarados como abstractos
● Una clase abstracta NO puede instanciarse → no se pueden crear objetos de
una clase abstracta
● No obstante lo anterior una clase abstracta puede tener constructores
● Una clase abstracta puede incluir variables y métodos no abstractas
public abstract class Figura{
Figura
int x, y;

void mostrarOrigen(){
sop(“x” + x + “y “ + y);
}

abstract double area();


abstract void mostrarNombre();

}
Triangulo Cuadrado
class Triangulo extends Figura{ class Cuadrado extends Figura{
int base, altura; int lado;
Triangulo(int ba, int al){ Cuadrado(int lado){
base = ba; this.lado=lado;
altura=al;
}
}
double area(){
double area(){
return (lado*lado);
return (base*altura)/2;
}
}
void mostrarNombre(){
void mostrarNombre(){
sop (“Cuadrado”);
sop (“Triangulo”);
}
}
}//fin de la clase concreta Triangulo
}//fin de la clase concreta Triangulo
class PruebaAbstracta{
public static void main (String[] args)
{
Figura fig;
Triangulo tri;
Cuadrado cua;
fig = new Figura(); // error no se puede instanciar de clase abstracta
tri=new Triangulo(4,3); //Triangulo tri = new Triangulo(4,3);
tri.mostrarOrigen(); //es un metodo heredado de la superclase}
tri.mostrarNombre(); // de los 2 metodos se ejecuta el de la subclase
fig=tri; // selección de métodos dinámica
fig.mostrarNombre(); //
sop(“Area triangulo” + fig.area());
cua = new Cuadrado(5); fig=cua; sop(“area cuadrado” + fig.area());
}//fin del main
}//fin de la clase PruebaAbstracta

También podría gustarte