オーバーライドされないメソッドを持つ基本クラス A があります。
class A
def dont_override_me
puts 'class A saying, "Thank you for not overriding me!"'
end
end
そして、A を拡張してdont_override_me
メソッドをオーバーライドしようとする別のクラス B。
class B < A
def dont_override_me
puts 'class B saying, "This is my implementation!"'
end
end
B をインスタンス化して を呼び出すとdont_override_me
、クラス B のインスタンス メソッドが呼び出されます。
b = B.new
b.dont_override_me # => class B saying, "This is my implementation!"
これはルビーの性質によるものです。理解できる。
ただし、基本クラスのメソッドdont_override_me
を派生クラスでオーバーライドできないようにするにはどうすればよいですか? final
Ruby の Java のようなキーワードは見つかりませんでした。C++ では、基本クラスのメソッドを非仮想にすることができるため、派生クラスによってオーバーライドできなくなります。ルビーでこれを達成するにはどうすればよいですか?