Ruby| 如何在派生类对象的帮助下初始化基类构造函数?
在继承期间,如果要在派生类对象的帮助下向基类构造函数提供值,则需要使用“ super”关键字。通过super()
在子类的initialize方法中实现,您可以初始化基类的变量。
以下是与超级相关的情况,
没有参数的super:
当您只写“ super”时,仅表示您正在调用没有参数的super。在这种情况下,Ruby将消息传递给该对象的超类,并要求它在基类中调用与调用super的方法相同的名称方法。带有空列表的super:在这种情况下,
实现看起来像super()
,即使基类构造函数在参数列表中有一些提供的值,也没有参数传递给该对象的Parent类。带参数列表的super:在这种情况下,
一般实现看起来像super(val1,val2,...,valn)。在这里,所有参数都将传递给super的参数列表中提到的超类。
码:
=beginHow to initialize base class variables with derived class object
=end
class Base
def initialize(a,b)
@var1=a
@var2=b
puts "Value of a and b is #{@var1} and #{@var2} in base class"
end
end
class Derived < Base
def initialize(a,b)
super(a,b) #实施超级
@var3=a
@var4=b
end
def print1
puts "Value of a and b is #{@var3} and #{@var4}"
end
end
ob1=Derived.new(10,20)
ob1.print1
输出结果
Value of a and b is 10 and 20 in base classValue of a and b is 10 and 20
您可以在上面的代码中观察到我们正在super()
方法中传递参数,并且这些参数由Ruby传递给超类,从而导致超类变量的初始化。
以上是 Ruby| 如何在派生类对象的帮助下初始化基类构造函数? 的全部内容, 来源链接: utcz.com/z/330794.html