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继承

ruby继承_Ruby继承相关推荐

  1. php 魔术方法 多继承,day23:单继承多继承菱形继承__init__魔术方法

    原文:https://www.cnblogs.com/libolun/p/13434675.html 单继承 关于继承的一些基本概念 1.什么是子类?什么是父类?如果一个类继承另外一个类,该类叫做子类 ...

  2. java 父类是抽象类 定义private的属性 子类继承_java继承、多态、接口、抽象类定义及应用...

    继承:关键字extends java 中继承是单继承 允许多个子类继承一个父类,不允许一个子类继承多个父类. 继承是继承父类的所有属性和方法,但并不是所有的属性和方法都可被子类调用: 子类继承父类是必 ...

  3. 菱形继承,多继承,虚继承、虚表的内存结构全面剖析(逆向分析基础)

    // 声明:以下代码均在Win32_Sp3   VC6.0_DEBUG版中调试通过.. 在逆向还原代码的时候,必须得掌握了菱形继承,多继承,虚继承虚函数的内存虚表结构.所以,这篇文章献给正在学习C++ ...

  4. java多态和继承_Java 继承与多态的深入理解

    Java 继承与多态的深入理解 1.  什么是继承,继承的特点? 子类继承父类的特征和行为,使得子类具有父类的各种属性和方法.或子类从父类继承方法,使得子类具有父类相同的行为. 特点:在继承关系中,父 ...

  5. 借用构造函数 组合继承 拷贝继承 总结继承

    借用构造函数 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF ...

  6. C++虚继承(八) --- 虚继承与继承的差异

    前面一篇文章,说明了在C++ 虚继承对基类构造函数调用顺序的影响.经过仔细推敲,发现没有彻底说清楚虚继承与普通继承之间的关系.所以用下面的文字再说明一下. 首先,重复一下虚拟继承与普通继承的区别有: ...

  7. C++ 面向对象(一)继承:继承、对象切割、菱形继承、虚继承、继承与组合

    目录 继承 继承的概念 继承方式 基类与派生类的赋值转换 作用域与隐藏 派生类的默认成员函数 友元与静态成员 友元 静态成员 多继承 菱形继承 虚继承 继承和组合 什么是组合 如何选择组合和继承 继承 ...

  8. c++ 虚继承与继承的差异

    前面一篇文章,说明了在C++ 虚继承对基类构造函数调用顺序的影响.经过仔细推敲,发现没有彻底说清楚虚继承与普通继承之间的关系.所以用下面的文字再说明一下. 首先,重复一下虚拟继承与普通继承的区别有: ...

  9. JavaScript面向对象——理解构造函数继承(类继承)

    JavaScript面向对象--理解构造函数继承(类继承) 构造函数式继承(类继承) function SuperClass(id) {// 引用类型公有属性this.books = ['JavaSc ...

最新文章

  1. linux设备和驱动加载的先后顺序
  2. 【转】2010全球最值得模仿的230个网站
  3. C++学习:两个vector对象拼接
  4. 300plc与组态王mpi通讯_MPI(DP)-ETH以太网转换器使用手册
  5. 微软总裁呼吁:AI刷脸,美国政府该管一管了
  6. Java监控MongoDB空间使用量、连接数
  7. 计算机管理主要是作业管理和什么管理,计算机四级之作业管理试题
  8. 冠状病毒主题网页制作——疫情地图
  9. emmc host调用mmc_rescan发现设备
  10. 用python解决放苹果问题_放苹果问题(组合数学经典)
  11. 2021-07-24 centos基础设置
  12. JS中使用java方法与数据库交互
  13. 一文理解二元logistic回归
  14. 游戏无法启动此程序因为计算机中丢失,无法启动此程序因为计算机中丢失*.dll 看完你就知道了...
  15. python简易爬虫
  16. Jackson JsonNode
  17. java udp心跳机制_心跳包机制整理汇总
  18. 技术科普丨马达测试知多少?
  19. AtCoder Regular Contest 084
  20. 文思海辉金融:交易银行未来一站式服务体系建设的实践与思考

热门文章

  1. c语言如何判断是否是子序列,leetcode392(判断子序列)--C语言实现
  2. Digit sum【暴力+打表】
  3. PostgreSQL 并行查询概述
  4. 爬虫scrapy模块
  5. hadoop namenode管理元数据机制
  6. java.util (Collection接口和Map接口)
  7. java写入文件的几种方法分享
  8. jsonp的简单学习
  9. apache 添加下载文件头
  10. 大型网站架构设计系列总结