ruby继承_Ruby继承

ruby继承

Ruby中的继承 (Inheritance in Ruby)

Inheritance is a feature of Object Oriented languages in which new classes are derived from existing classes and resulting in the formation of a hierarchy of classes. The derived class is often called as child class and the existing class is termed as parent class. Inheritance provides code reusability which increases the human efficiency to write codes on the platform.

继承是面向对象语言的一种功能,其中新类从现有类派生,并导致形成类层次结构。 派生类通常称为子类 ,现有类称为父类 。 继承提供了代码可重用性,从而提高了人员在平台上编写代码的效率。

Ruby is an Object Oriented language, thus it supports the major feature of Inheritance. We can also explain inheritance via an example of two classes namely A and B.

Ruby是一种面向对象的语言,因此它支持Inheritance的主要功能。 我们还可以通过两个类AB的示例来解释继承。

Let us define these two classes in ruby using its syntax:

让我们使用其语法在ruby中定义这两个类:

    class A
        #class methods
    end

    class B
        #class methods
    end

If we want to provide inheritance on class B, then the syntax will be changed as,

如果我们要在类B上提供继承 ,则语法将更改为:

    class A
        #class methods
    end

    class B < A
        #class methods
    end

In the above syntax that we have used the " symbol to inherit a class. Now, if the object of class B is created then it will also be able to use the data members and member methods of class A. This provides code reusability as now we don't have to define methods which are already declared in class A, in class B as well. There are two classes possible after inheritance.

在上面的语法中,我们使用了“符号来继承一个类。现在,如果创建了类B的对象,那么它也将能够使用类A的数据成员和成员方法。这提供了现在的代码可重用性。我们不必定义已经在类A类B中声明的方法,继承后可能有两个类。

  1. Super Class: Super class is the Parent class whose methods are inherited. It can also be termed as Base class.

    超级类 :超级类是其方法被继承的Parent类。 也可以称为基类。

  2. Sub Class: Sub class is often termed as Derived or Child class. Sub class derives the methods and variables of Base class or Parent class.

    子类 :子类通常被称为派生类或子类。 子类派生基类或父类的方法和变量。

Ruby supports only single level inheritance which means that a child class can have only one base class or parent class. It disallows Multi-level inheritance which means that if we want to make multiple parent classes of a single child class then it is not possible. Multiple inheritances are restricted because it creates ambiguity error or you can say that it creates multiple paths if the method name is same in both parent classes and the compiler could not decide or choose the right path.

Ruby仅支持单级继承,这意味着子类只能具有一个基类或父类。 它不允许多级继承,这意味着如果我们要使单个子类具有多个父类,则不可能。 多重继承受到限制,因为它会产生歧义错误,或者如果两个父类中的方法名称相同并且编译器无法决定或选择正确的路径,则可以说它会创建多个路径。

Every class which is defined in Ruby platform has a default parent class. Before Ruby 1.9 version, every class has the parent class known as "Object class" by default but after Ruby 1.9 version, the parent class or the superclass of every class is "Basic Object class" by default.

Ruby平台中定义的每个类都有一个默认的父类。 在Ruby 1.9之前,每个类的父类默认情况下都称为“对象类”,而在Ruby 1.9以后,每个类的父类或超类的默认情况下都为“基本对象类”。

Let us understand the practical implementation of Inheritance with the help of the following example,

让我们借助以下示例了解继承的实际实现:

=begin 
Ruby program to demonstrate Inheritance.
=end

class ClassA
	def Show
		puts "Welcome to IncludeHelp"
	end
	def Message
		puts "Enter your name: "
		nm=gets.chomp
		puts "Hello #{nm}, I hope you are doing great"
	end
end

class ClassB<ClassA
	def Hello
		puts "Hello World!"
	end
end

ob1=ClassB.new
ob1.Show
ob1.Message
ob1.Hello

Output

输出量

Welcome to IncludeHelp
Enter your name:
Hrithik
Hello Hrithik, I hope you are doing great
Hello World!

You can observe in the above code that, ClassB is the child class of Base class ClassA. The object of ClassB can access the methods of ClassA.

您可以在上面的代码中观察到, ClassB是基类ClassA的子类。 ClassB的对象可以访问ClassA的方法。

翻译自: https://www.includehelp.com/ruby/inheritance.aspx

ruby继承

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值