Herança no Ruby
Um dos conceitos base da programação orientada a objetos, a herança permite que o programador crie uma classe (classe filha, derivada ou subclasse) que é um refinamento ou uma especialização de outra classe (classe pai, base ou superclasse).
Ruby permite herança simples, isto é, uma classe pode herdar os atributos e métodos de apenas uma única outra classe. Algumas linguagens, como Python e Eiffel, permitem herança múltipla. Ruby suporta também o conceito de Mixins.
Vejamos um exemplo simples da aplicação de herança no Ruby:
.
class Pessoa
attr_accessor :nome, :sobrenome, :cpf
def initialize(nome, sobrenome, cpf)
@nome = nome
@sobrenome = sobrenome
@cpf = cpf
end
def nome_completo
@nome + ‘ ‘ + @sobrenome
end
end
class Cliente < Pessoa
attr_accessor :pedidos
def adicionar_pedido(numero)
unless @pedidos
@pedidos = []
end
@pedidos << numero
end
def listar_pedidos
@pedidos.each do |p|
puts p.to_s + “\n”
end
end
end
class Empregado < Pessoa
attr_accessor :cargo, :salario
def to_s
saida = “Empregado: #{nome_completo}\n”
saida += “Cargo: #{@cargo}\n”
saida += “Salário: #{@salario}\n”
end
end
cliente = Cliente.new(‘José’, ‘da Silva’, ‘999999’)
cliente.adicionar_pedido(90)
cliente.adicionar_pedido(189)
cliente.adicionar_pedido(480)
cliente.adicionar_pedido(512)
cabecalho = “Pedidos do cliente #{cliente.nome_completo}: \n\n”
puts cabecalho
cliente.listar_pedidos
empregado = Empregado.new(‘Marcos’,‘da Silva’,‘11111’)
empregado.cargo = ‘Programador’
empregado.salario = ‘3000’
puts empregado
Links interessantes:
Ruby Classes and Objects
Mais sobre herança no Ruby
Nenhum comentário até agora