Class
A
は Class のサブクラスですB
。ClassB
は class のサブクラスですC
。a
クラスのオブジェクトですA
。b
クラスのオブジェクトですB
。次の Ruby 式のうち、正しくないものはどれですか?
b.respond_to?('class')
a.superclass == b.class
A.superclass == B
a.class.ancestors.include?(C)
このクイズの答えは(2)でした。
(1)、(3)、(4) が正しい理由は理解できますが、(2) は少しわかりにくいです。
a.superclass
(2) に入力するirb
と が得られるため、わかりにくいですNoMethodError: undefined method 'superclass' for #<A:0x7fbdce1075f0>
。
しかし、 に入力A.superclass == B
するとirb
、 が得られtrue
ます。
superclass
クラスを呼び出すことができるのに、クラスのオブジェクトを呼び出せないのはなぜですか?