oop三大特徵之繼承

2022-06-05 10:51:08 字數 1859 閱讀 3067

1.什麼是繼承

繼承是一種關係,描述兩個物件之間,什麼是什麼的物件。在程式中,繼承描述的是類與類之間的關係。例如a繼承了b,a就能直接使用b已經存在的方法和屬性,其中a稱之為子類,b稱之為父類,也稱為基類。

2.為什麼要使用繼承:

繼承的一方可以直接使用被繼承一方已經有的東西。其目的是為了重用已經有的**,提高**的重用性。減少**重複,為多型提供必要的支援。

3.如何使用繼承

class 類名稱(父類的名稱):

類的內容

# 在python中 乙個子類可以同時繼承多個父類

4.繼承與抽象

繼承描述的是子類與父類之間的關係。在有些例子中,子類雖然繼承了父類並完成了**的重用,可繼承關係在邏輯上是錯誤的。oop的概念來自現實世界,所以應當遵循現實世界的邏輯。為了避免這種邏輯錯誤,我們可以將子類與父類間相同的部分引數抽取出來放到另乙個類中,這個類稱為公共父類。這個類與實際的業務需求是無關的在現實中也不實際存在,它的作用僅僅是儲存相同**以減少重複;這一過程我們稱之為抽象。先抽象再繼承。

5.存在繼承關係後的屬性查詢

乙個類必然繼承另外乙個類,被繼承的類也有可能繼承了其他的類,相當於c繼承了b,b又繼承了a。

此時的查詢順序為 :物件本省的命名空間》類的命名空間》父類的命名空間》父類的父類的命名空間》object類。它會沿著繼承關係一直往後找,直到找到為止,由於object是所有類的根類,所以不著最後都會去查詢object類!

6.派生與覆蓋

(1).什麼是派生

當父類提供的屬性無法完全滿足子類的需求時,子類可以增加自己的屬性或非法,或者覆蓋父類已經存在的屬性,此時子類稱之為父類的派生類;

(2).什麼是覆蓋

在子類中如果出現於父類相同的屬性名稱時,根據查詢順序,優先使用子類中的屬性,這種行為也稱為覆蓋。

7.經典類與新式類

即使沒有直接繼承關係,super仍然會按照mro繼續往後查詢,而第一種方式明確指定了要到哪乙個類中去查詢,找不到則直接丟擲異常。

8.組合

軟體重用的重要方式除了繼承之外還有另外一種方式,即:組合。組合指的是,在乙個類中以另外乙個類的物件作為資料屬性,稱為類的組合。

組合與繼承都是有效地利用已有類的資源的重要方式。但是二者的概念和使用場景皆不同,

(1).繼承的方式

通過繼承建立了派生類與基類之間的關係,它是一種'是'的關係,

當類之間有很多相同的功能,提取這些共同的功能做成基類,用繼承比較好。

(2).組合的方式

用組合的方式建立了類與組合的類之間的關係

9.繼承實現的原理

如果繼承關係為菱形結構,那麼屬性查詢的方式有兩種,分別是深度優先和廣度優先,

mro列表並遵循如下三條準則: 1.子類會先於父類被檢查 2.多個父類會根據它們在列表中的順序被檢查 3.如果對下乙個類存在兩個合法的選擇,選擇第乙個父類 。

1.封裝的簡單介紹

封裝指的是隱藏物件的屬性和實現細節,僅對外公開介面,控制程式中屬性的訪問許可權;python中的許可權有兩種:一種是公開,外界可以直接訪問和修改;另一種是不能直接由外界進行修改,但可以通過類完成修改。

2.封裝的必要性及封裝方法

封裝的目的是為了限制屬性的訪問和修改,用來保護資料安全。

封裝方法:

乙個大的功能模組是由很多小功能組合而成的,而這些小模組對使用者來說是沒有意義的,所以封裝的目的是為了隔離複雜度 。在屬性名前新增兩個下劃線__。可將其設為私有。

**:

C 三大特徵之繼承

c 有三大特徵,封裝 繼承與多型,在本篇文章中,與大家來聊一聊繼承。繼承的本質就是 的復用。簡單的說,繼承是指乙個物件直接使用另一物件的屬性和方法。c 中的繼承關係就好比現實生活中的父子關係,繼承一筆財產比白手起家要容易得多,原始類稱為基類,繼承類稱為派生類,它們是類似於父親和兒子的關係,所以也分別...

C 物件導向三大特徵之 繼承

當建立乙個類時,不需要完全重新編寫新的資料成員和成員函式,只需要設計乙個新的類,繼承了已有的類的成員即可。這 個已有的類被稱為的基類 父類,這個新的類被稱為派生類 子類。繼承概述 1.繼承子承父業,子類可以繼承父類的可繼承屬性 函式 2.但是並非完全繼承,只有可繼承的類成員才可以被繼承,主要使用訪問...

物件導向三大特徵之 繼承 , 多型

物件導向三大特性 繼承 概念 子類可以繼承父類的一切 方法重寫 在子類裡面對父類的方法進行重寫 特點 單繼承 乙個子類只能有乙個父類,乙個父類可以派生出多個子類 override 重寫 overload 過載,程式設計多型 parent 值名 放到那個需要呼叫父類的值名裡面的 值 的子類裡面!cla...