Ruby| 如何在派生类对象的帮助下初始化基类构造函数?

在继承期间,如果要在派生类对象的帮助下向基类构造函数提供值,则需要使用“ super”关键字。通过super()在子类的initialize方法中实现,您可以初始化基类的变量。

以下是与超级相关的情况,

  • 没有参数的super:
    当您只写“ super”时,仅表示您正在调用没有参数的super。在这种情况下,Ruby将消息传递给该对象的超类,并要求它在基类中调用与调用super的方法相同的名称方法。

  • 带有空列表的super:在这种情况下,
    实现看起来像super(),即使基类构造函数在参数列表中有一些提供的值,也没有参数传递给该对象的Parent类。

  • 带参数列表的super:在这种情况下,
    一般实现看起来像super(val1,val2,...,valn)。在这里,所有参数都将传递给super的参数列表中提到的超类。

码:

=begin

How 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 class

Value of a and b is 10 and 20

您可以在上面的代码中观察到我们正在super()方法中传递参数,并且这些参数由Ruby传递给超类,从而导致超类变量的初始化。

以上是 Ruby| 如何在派生类对象的帮助下初始化基类构造函数? 的全部内容, 来源链接: utcz.com/z/330794.html

回到顶部