Herança no Ruby

25set07

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

Anúncios


No Responses Yet to “Herança no Ruby”

  1. Deixe um comentário

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s


%d blogueiros gostam disto: