SquareをRectangleクラスの継承クラスにすることは、LSP(Liskov置換原理)に違反していると言って、悪い習慣です。私はまだそれを得ることはありません、私はRubyでサンプルコードを作った:正方形と長方形の継承で何が問題になっていますか?
class Rectangle
attr_accessor :width, :height
def initialize(width, height)
@width = width
@height = height
end
end
class Square < Rectangle
def initialize(length)
super(length, length)
end
def width=(number)
super(number)
@height = number
end
def height=(number)
super(number)
@width = number
end
end
s = Square.new(100)
s.width = 50
puts s.height
誰もがそれと間違って何を教えてもらえますか?
ランパースペースプリンセス? http://www.youtube.com/watch?v=pJTrD3R5cj0 – paxdiablo
うわー、それは興味深いですが、私はそれを得ることはできません – mko
yozloy、謝罪、私はちょうどあなたがそれを意識していない人が検索する必要がないようにLSPを設定します。 – paxdiablo