繼承與多型的區別
在計算機程式設計中,繼承和多型是兩個重要的概念。“繼承”和“多型”最基本的區別在於,“繼承”是面向物件程式設計的一個概念,它允許利用現有類的特性建立新類,而“多型”的概念則表示單個函式的多種形式。
閱讀本文,瞭解更多關於繼承和多型的資訊,以及它們之間是如何不同的。
什麼是繼承?
繼承是面向物件程式設計 (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. |
它可用於模式設計。 |
它可用於模式設計。 |
結論
這兩個概念之間最顯著的區別在於,繼承用於增強可重用性的概念以減少程式中的程式碼長度,而多型則定義了單個函式可以以多種形式呼叫的概念。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP