Created with <3 with dartpad.dev.
Created
November 7, 2023 02:48
-
-
Save leonus96/1dbe1e1fa30b982f6abbf35d1efbe7ba to your computer and use it in GitHub Desktop.
clases clase-abstracta
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// 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