L'ereditarietà in Ruby

Mattepuffo's logo
L'ereditarietà in Ruby

L'ereditarietà in Ruby

Come sappiamo, Ruby è un linguaggio che ha pieno supporto alla OOP.

Oggi vediamo come implemente il concetto di ereditarietà.

Partiamo da questo semplice script:

class Animale
	def verso
		"Il mio verso!"
	end
end

class Cane < Animale
end

class Gatto < Animale
end

c = Cane.new
g = Gatto.new
puts c.verso
puts g.verso

Con il simbolo < impostiamo l'ereditarietà della classe; per il resto è un esempio abbastanza semplice.

Facciamo un altro esempio:

class Animale
	def verso
		"Il mio verso!"
	end
end

class Cane < Animale
	
	attr_accessor :nome

	def initialize(nome)
		self.nome = nome
	end
	
	def verso
		"Il cane #{self.nome} sta abbaiando"
	end
end

class Gatto < Animale

end

c = Cane.new("Tj")
g = Gatto.new
puts c.verso
puts g.verso

Qui abbiamo impostiamo il nome al cane, e facciamo l'override del metodo verso.

Infatti, se paragonate i due output, vedrete che saranno diversi.

Anche in Ruby, inoltre, abbiamo la direttiva super, che ci consente di accedere al metodo della classe base; guardate questo esempio e il suo output:

class Animale
	def verso
		"Ciao dall'animale "
	end
end

class Cane < Animale
	
	def verso
		super + "Cane"
	end
end

c = Cane.new
puts c.verso

Ci fermiamo qua, anche se ovviamente Ruby supporta concetti più avanzati.

Enjoy!


Condividi

Commentami!