二. 类方法和类的类实例方法
在上一篇文章中,我们讲了类变量和类的类实例变量之间的区别和各自的使用场景。在本文中将介绍一下类方法和类的类实例方法,从表面上来看可能认为二者之间的关系类似于变量间的区别,但是字面上的理解往往具有很大的欺骗性。实际上,二者并没有任何区别,它们本质上是同一个东西的两种不同的定义。我们还是从代码上来看看...
class A
#class's class instance method
class<<A
def method1
puts "Class's Class instance method"
end
end
#class method
def A.method2
puts "Class mthod!"
end
end
class B<A
end
A.method1
A.method2
B.method1
B.method2
程序运行的结果如下:
Class's Class instance method
Class mthod!
Class's Class instance method
Class mthod!
从结果中我们可以看出,二者之间并没有任何区别。都可以被子类访问。而没有像类变量和类的类实例变量那样的区别。但是,我们应该选者那种定义方式来定义我们的类方法呢?毫无疑问,应该选者清晰易懂的方式------类方法,尽量不要使用类的类实例方法那样的方式。