Sto leggendo sui principi SOLID. Nelle esercitazioni e negli esempi di codice di Ruby, vedo spesso estensioni di sottoclassi come:
class House
attr_reader :items
end
class Room < House
attr_reader :chair
end
p House.chair = 'baroque_style'# => NoMethodError
Ovviamente gli esempi sono utili per mostrare quanto facilmente le classi siano manipolate in ruby, ma non si tratta di una violazione del Principio di sostituzione di Liskov?