Dim*_*ets 2 ruby oop inheritance
据我了解,这个问题已经被提出过很多次了。但我找不到有关所有这些变量的完整指南。我发现了几篇比较类变量与类实例变量的文章,但是实例变量呢?那么,实例变量、类变量和类实例变量
之间有什么区别?什么样的变量是可继承的,什么是不可继承的?
实例变量是属于一个特定对象(也称为实例)的变量。在这种情况下,继承是无关紧要的,因为对象不能从任何东西继承,只有类可以。
\n\n类实例变量不存在。类就像任何其他对象一样是对象,因此它们可以像任何其他对象一样具有实例变量。当类有实例变量时,有时称为类实例变量,但它只是一个实例变量。所以,再次强调,它不能被继承。
\n\n类变量是奇怪的野兽。它们被共享
\n\n考虑到它们的共享范围,它们实际上更像是全局变量。
\n\n您可以将其称为共享继承,但我认为这不是一个有用的术语。没有多态调度,没有消息发送,没有覆盖。
\n\n在 Ruby 中,术语“继承”实际上只对方法有意义,而对变量则没有意义。
\n