继承与多态的区别


在计算机编程中,继承多态是两个重要的概念。“继承”和“多态”最基本的区别在于,“继承”是面向对象编程的一个概念,它允许利用现有类的特性创建新类,而“多态”的概念则表示单个函数的多种形式。

阅读本文,了解更多关于继承和多态的信息,以及它们之间是如何不同的。

什么是继承?

继承是面向对象编程 (OOP) 中的一个概念,它指的是一个对象可以获取一个或多个其他对象特性的过程。因此,继承是 OOP 中建立代码可重用性的最强大的概念之一。

借助继承,我们可以通过创建现有类之间的父子关系来构建新类。因此,继承允许创建现有类的新的子类型。

示例

在 OOP 中,使用继承的主要目的是通过可重用性的概念来缩短代码长度。继承有很多类型,例如单继承、多继承、层次继承、多层继承和混合继承。

class base_class:
   def __init__(self, f_name, l_name):
      self.firstname = f_name
      self.lastname = l_name
   def print_it(self):
      print(self.firstname, self.lastname)
   print("An instance of 'base_class' is created")
   my_instance = base_class("John", "Will")
   print("A method 'print_it' is being called using the created instance")
   my_instance.print_it()

输出

它将产生以下输出 -

An instance of 'base_class' is created
A method 'print_it' is being called using the created instance
John Will

什么是多态?

多态意味着多种形式。它是在编程中允许单个函数具有多种形式的概念。多态通常在函数上实现,它允许对象确定要调用函数的哪种形式。

多态有两种类型,分别是编译时多态和运行时多态。编译时多态也称为方法重载,而运行时多态也称为方法覆盖

示例

def add_vals(val_1, val_2, val_3 = 1):
   my_result = val_1 + val_2 + val_3
   return my_result

print("The method is being called by passing two parameters")
print(add_vals(7, 9))
print("The method is being called by passing three parameters")
print(add_vals(11, 23, 45))

输出

它将产生以下输出 -

The method is being called by passing two parameters
17
The method is being called by passing three parameters
79

继承与多态的区别

以下是继承与多态之间的重要区别 -

序号

继承

多态

1.

它是面向对象编程范式的一部分。

'Poly' 表示多种,'morph' 表示形式。

2.

它可以在 C++、Java、Python 和其他面向对象编程语言中实现。

它是面向对象编程范式的一部分。

3.

它是一种方法,通过这种方法可以创建一个新类,该类可以获取并使用现有类的属性。

它可以在 C++、Java、Python 和其他面向对象编程语言中实现。

4.

现有类称为“父/基类”,使用此类的类称为“子/派生类”。

因此,多态是指以多种方式执行特定任务的方法。

5.

它有助于代码重用。

这可以在使用函数时使用。

6.

在实现面向对象编程时,它可以减小代码的大小。

它允许类的对象决定它必须采用哪种形式才能使用类的方法和属性。

7.

继承的类型

  • 单继承

  • 多层继承

  • 多继承

  • 混合继承

  • 层次继承

多态的类型

  • 编译时多态 - 也称为方法重载。

  • 运行时多态 - 也称为方法覆盖。

8.

它可用于模式设计。

它可用于模式设计。

结论

这两个概念之间最显着的区别在于,继承用于增强可重用性的概念以减少程序中的代码长度,而多态则定义了单个函数可以以多种形式调用的概念。

更新于: 2023年2月21日

7K+ 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告