Может кто-нибудь объяснить, как класс может получить доступ к переменным экземпляра своего суперкласса и как это не наследование? Я говорю о "языке программирования Ruby" и примере
class Point
def initialize(x,y) # Initialize method
@x,@y = x, y # Sets initial values for instance variables
end
end
class Point3D < Point
def initialize(x,y,z)
super(x,y)
@z = z
end
def to_s
"(#@x, #@y, #@z)" # Variables @x and @y inherited?
end
end
Point3D.new(1,2,3).to_s => "(1, 2, 3)"
Как класс Point3D
получает доступ к x
и y
внутри to_s
, если они не наследуются? В книге говорится:
"Причина, по которой они иногда кажутся унаследованными, заключается в том, что переменные экземпляра создаются методами, которые сначала присваивают им значения, и эти методы часто унаследованы или скованы".
но я не могу понять, что это на самом деле означает.