-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.rb
47 lines (38 loc) · 914 Bytes
/
main.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# Classe base abstrata (com abstração)
class Forma
def calcular_area
raise NotImplementedError, "Método abstrato deve ser implementado nas subclasses"
end
end
# Subclasse que herda de Forma
class Retangulo < Forma
def initialize(base, altura)
@base = base
@altura = altura
end
def calcular_area
@base * @altura
end
end
# Subclasse que herda de Forma
class Circulo < Forma
def initialize(raio)
@raio = raio
end
def calcular_area
Math::PI * @raio**2
end
end
# Função principal
def main
# Criar uma forma de retângulo
retangulo = Retangulo.new(5.0, 4.0)
# Calcular e imprimir a área do retângulo
puts "Área do Retângulo: #{retangulo.calcular_area}"
# Criar uma forma de círculo
circulo = Circulo.new(3.0)
# Calcular e imprimir a área do círculo
puts "Área do Círculo: #{circulo.calcular_area}"
end
# Chamar a função principal
main