== 核心子类Override一览

引子

  • 只检查类本身是否有Override,有些类的父类做了Override了的;
  • Module/Symbol虽然有Override ==方法,但是代码跟BasicObject的一样,可认为没有Override;
  • Range 中的 ===并不完全等于 include?, 参数处理上略有差异;
Class/Module Override == Override eql? (Same as ==) Override === (Same as ==)
Array √(×) ×
Hash √(√) ×
Range √(×) √(include?
Comparable × ×
Exception × ×
Numeric × x
Complex × ×
Float √(×) √(√)
Integer × √(√)
Rational × ×
MatchData √(√) ×
Method √(√) √(call
Proc x x √(call
Module × × ×
Random × ×
Regexp √(√) √(×)
String √(×) √(√)
Struct √(×) ×
Symbol x x x
FalseClass x x
TrueClass x x
NilClass x x