Skip to content

Instantly share code, notes, and snippets.

@leonus96
Created November 7, 2023 02:48
Show Gist options
  • Save leonus96/1dbe1e1fa30b982f6abbf35d1efbe7ba to your computer and use it in GitHub Desktop.
Save leonus96/1dbe1e1fa30b982f6abbf35d1efbe7ba to your computer and use it in GitHub Desktop.
clases clase-abstracta

clases clase-abstracta

Created with <3 with dartpad.dev.

/// POLIMORFISMO Y CLASES ABSTRACTAS
abstract class Figura {
String nombre;
Figura({required this.nombre});
double area();
}
class Triangulo extends Figura {
double h;
double b;
Triangulo({
required super.nombre,
required this.h,
required this.b,
});
@override
double area() {
return (b * h) / 2;
}
}
class Cuadrado extends Figura {
double l;
Cuadrado({required super.nombre, required this.l});
@override
double area() {
return l * l;
}
}
class Rectangulo extends Figura {
double h;
double b;
Rectangulo({required super.nombre, required this.h, required this.b});
@override
double area() {
return b * h;
}
}
class Rombo extends Figura {
double dM;
double dm;
Rombo({
required super.nombre,
required this.dM,
required this.dm,
});
@override
double area() {
return (dM * dm) / 2;
}
}
class Circulo extends Figura {
double r;
Circulo({required super.nombre, required this.r});
@override
double area() {
return 3.14 * r * r;
}
}
void main() {
final Triangulo t1 = Triangulo(
nombre: 'Triangulo',
h: 5,
b: 6,
);
final Cuadrado c1 = Cuadrado(
nombre: 'Cuadrado',
l: 7,
);
final Rectangulo r1 = Rectangulo(
nombre: 'Rectangulo',
b: 7,
h:20,
);
final Rombo ro1 = Rombo(
nombre: 'Rombo',
dm:6,
dM:20
);
final Circulo ci1 = Circulo(
nombre: 'Circulo',
r: 15,
);
imprimeArea(t1);
imprimeArea(c1);
imprimeArea(r1);
imprimeArea(ro1);
imprimeArea(ci1);
}
void imprimeArea(Figura figura) {
print('El area del ${figura.nombre} es ${figura.area()}');
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment