Ruby 继承
Ruby是理想的面向对象的语言。在一个面向对象的编程语言中,继承是最重要的特征之一。继承允许程序员将一个类的特性继承到另一个类。Ruby只支持单类继承 ,它不支持多类继承,但它支持mixins。mixins_ 是为了在Ruby中实现多重继承,但它只继承接口部分。
继承提供了 “可重用性 “的概念,也就是说,如果一个程序员想创建一个新的类,而有一个类已经包括了程序员想要的一些代码,那么他或她可以从现有的类中派生出一个新的类。通过这样做,可以增加对现有类的字段和方法的重用,而不会产生额外的代码。
在上图中,A类是超类,B类是子类,或者你可以说B类是从A类派生出来的(Base Class)。
继承中的关键术语
- 超类: 其特征被继承的类被称为超类或基类或父类。
- 子类: 从另一个类派生出来的类被称为子类或派生类或子类。你也可以在基类方法和对象之外添加它自己的对象、方法等等。
注意: 默认情况下,Ruby中的每个类都有一个父类。在 Ruby 1.9 之前,Object类是所有其他类的父类,或者你可以说它是类层次结构的根。但是从Ruby 1.9 版本开始, BasicObject类 是Ruby中所有其他类的超级类(父类)。Object类是BasicObject类的一个子类。
语法
例子
输出
重写父类或超类方法: 方法重写是Ruby的一个非常有效的功能。在方法覆盖中,子类和超类包含相同的方法名称,但执行不同的任务,或者我们可以说一个方法覆盖另一个方法。如果超类包含一个方法,而子类也包含相同的方法名,那么子类的方法将被执行。
例子
输出
继承中super方法的使用: 该方法用于在子类中调用父类方法。如果该方法不包含任何参数,它会自动传递其所有参数。一个超级方法是由 super 关键字定义的。每当你想调用父类的同名方法时,你可以简单地写上 super 或 super()。
例子
输出