Fork me on GitHub

Keep Learning Conhecimento nunca é o bastante

Postado em
25 September 2007 @ 13:02

Tag(s)
Ruby

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


Nenhum comentário ainda. Você pode ser o primeiro!

Deixe um comentário