19.面向對象(繼承)

来源:https://www.cnblogs.com/hpcz190911/archive/2019/10/03/11620859.html
-Advertisement-
Play Games

面向對象三大特性:封裝、繼承、多態 繼承的概念: 在定義類時,可以從已有類當中提取想要的內容 被繼承的類稱為父類、基類、超類,新定義的類稱為子類、派生類 註意:如果派生類中的屬性與基類屬性重名,那麼派生類的屬性會覆蓋掉基類的屬性。包括初始化函數。 派生類在初始化函數中需要繼承和修改初始化過程,使用’ ...


面向對象三大特性:封裝、繼承、多態

繼承的概念:

  在定義類時,可以從已有類當中提取想要的內容

  被繼承的類稱為父類、基類、超類,新定義的類稱為子類、派生類

  註意:如果派生類中的屬性與基類屬性重名,那麼派生類的屬性會覆蓋掉基類的屬性。包括初始化函數。

    派生類在初始化函數中需要繼承和修改初始化過程,使用’類名+__init__(arg)’來實現繼承和私有特性,也可以使用super()函數。

繼承的優點:

  1.節省代碼

  2.規範代碼

繼承的作用

  面向對象的編程帶來的主要好處之一是代碼的重用,實現這種重用的方法之一是通過繼承機制。繼承完全可以理解成類之間的類型和子類型關係。

 

初識繼承:

  只執行本類的方法

  只執行父類的方法

  既執行父類的方法又執行本類的方法

    父類名.類名(參數)

    super().方法名(參數(self參數自動傳值))

  新式類:凡是繼承object類都是新式類

    python3x所有的類都為新式類,因為python3x中的類都預設繼承object

  經典類:不繼承 object類都是經典類

    python2x(既有新式類,又有經典類)所有的類都預設不繼承object類,都預設為經典類,可以用object繼承為新式類

繼承的分類:

  1.單繼承

    新式類和經典類查詢順序一樣

  2.多繼承

    新式類:遵循廣度優先

      一條路走到倒數第二級,判斷,如果其他路能一條路走到低,則返回走另一條路,如果不能,則走到終點

    經典類:遵循深度優先

      一條路走到低

廣度優先的圖解如下:

代碼如下:

# class A:
#     pass
#     # def func(self):
#     #     print('IN A')
# 
# class B(A):
#     pass
#     # def func(self):
#     #     print('IN B')
# 
# class C(A):
#     # pass
#     def func(self):
#         print('IN C')
# 
# class D(B):
#     pass
#     # def func(self):
#     #     print('IN D')
# 
# class E(C):
#     # pass
#     def func(self):
#         print('IN E')
# 
# class F(D,E):
#     pass
#     # def func(self):
#     #     print('IN F')
# 
# f1 = F()
# f1.func()

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 熱愛旅行,一直想找到一個應用記錄我到過的新的“領土”。搜了下市面上已經存在的地圖應用,都不是我想要的。找不到趁手的工具,那就自己打造一把。如何打造一個自己的旅行足跡地圖? ...
  • 命令模式(Command): 將請求封裝成對象,以便使用不同的請求、日誌、隊列等來參數化其他對象。命令模式也支持撤銷操作。 命令模式的角色: 1)傳遞命令對象(Invoker):是請求的發送者,它通常擁有很多的命令對象,並通過訪問命令對象來執行相關請求,它不直接訪問接收者。 2)抽象命令介面(Com ...
  • 使用Python內置函數:bin()、oct()、int()、hex()可實現進位轉換。 先看Python官方文檔中對這幾個內置函數的描述: bin(x)Convert an integer number to a binary string. The result is a valid Pytho ...
  • "Flask的使用以及返回值(其中Response後續詳細單獨補充)" "Flask的路由解讀以及其配置" "Flask的請求擴展" "Flask中的cookie和session" "Flask中的request和response" "Flask中的渲染變數" "Flask中的CBV以及正則表達式" ...
  • 第一次寫博客,正好在回顧Java的時候用到了比較器,記錄一下使用的方法。 Java比較器多用於對象數組的排序,主要用到comparable和comparator介面 1、使用comparable介面 首先將需要實現排序對象的類實現comparable介面,實現後覆寫comparaTo(T other ...
  • 1、HashMap源碼解析(JDK8) 基礎原理: 對比上一篇《Java中的容器(集合)之ArrayList源碼解析》而言,本篇只解析HashMap常用的核心方法的源碼。 HashMap是一個以鍵值對存儲的容器。 hashMap底層實現為數組+鏈表+紅黑樹(鏈表超過8時轉為紅黑樹,JDK7為數組+鏈 ...
  • 我們將生產者、消費者、庫存、和調用線程的主函數分別寫進四個類中,通過搶奪非線程安全的數據集合來直觀的表達在進行生產消費者模型的過程中可能出現的問題與解決辦法。 我們假設有一個生產者,兩個消費者來共同搶奪庫存里的資源,而生產者和消費者都以線程來實現。 庫存對象只有是唯一的才會出現搶奪一個資源的可能,所 ...
  • vue實現選擇圖片文件後預覽 利用h5的api可以實現選擇文件並實現預覽 readAsDataURL 方法會讀取指定的 Blob 或 File 對象。讀取操作完成的時候,readyState 會變成已完成DONE,並觸發 loadend 事件,同時 result 屬性將包含一個data:URL格式的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...