網站首頁 編程語言 正文
1. 單繼承
繼承的主要作用是實現代碼的重用。繼承使得子類擁有父類的方法和屬性。
直接來看一個例子吧。
class animal:
def eat(self):
print("吃")
def drink(self):
print("喝")
class dog(animal):
def dark(self):
print("汪汪叫")
goudan = dog()
goudan.eat()
goudan.drink()
從上面的代碼可以看出,在編寫dog類的時候,我們并沒有重寫eat和drink兩個方法。我們只需要在dog后面的括號中加上父類的名字即可。當子類繼承了父類,子類就可以直接使用父類中的方法了。在本例中,goudan可以直接使用animal類中的eat和drink兩個方法。
而且一個神奇的事情是,繼承是具有傳遞性的。子類擁有父類的方法和屬性,同時也具有父類的父類所具有的屬性。
2. 繼承中的方法重寫
有時候,父類中的方法并不能完成滿足子類的需求。這時候我們就需要方法重寫了。子類方法重寫一般有兩種情況:
- 覆蓋父類的方法
- 對父類的方法進行擴展
一種簡單的方法是直接重寫相應的方法。下面這個例子就是重寫了drink這個方法。當使用goudan調用drink這個方法方法時,結果并不是喝而是拿舌頭喝水。
class animal:
def eat(self):
print("吃")
def drink(self):
print("喝")
class dog(animal):
def drink(self):
print("拿舌頭喝水")
def dark(self):
print("汪汪叫")
goudan = dog()
goudan.eat()
goudan.drink()
當我們的需求不是簡單的覆蓋父類中的方法,而是在父類方法的基礎上對方法進行擴展。具體的做法是:
- 在需要的位置使用super().父類方法 來調用父類方法的執行
- 代碼的其他位置針對子類的需求,編寫子類持有的代碼實現
我們來看一個例子,此時goudan在調用drink方法的時候,會輸出喝和拿舌頭喝水兩個輸出。
class animal:
def eat(self):
print("吃")
def drink(self):
print("喝")
class dog(animal):
def drink(self):
# 1. 根據子類的需求編寫特定的代碼
print("拿舌頭喝水")
# 2. 使用super繼承父類中的fangfa
super().drink
def dark(self):
print("汪汪叫")
goudan = dog()
goudan.eat()
goudan.drink()
3. 多繼承
對于Python而言,一個子類可以有多個父類。多繼承的基本語法是比較簡單的。話不多說,直接看一個例子
class A():
def test(self):
print("test")
class B():
def demo(self):
print("demo")
class C(A,B):
pass
c = C()
c.test()
c.demo()
總結
原文鏈接:https://blog.csdn.net/hello_JeremyWang/article/details/122380842
相關推薦
- 2022-11-25 命令行下執行TypeScript文件的三種方法_基礎知識
- 2022-08-13 Android實現加載圈_Android
- 2023-01-03 C++定義和初始化string對象實例詳解_C 語言
- 2023-06-17 Hugo?Config模塊構建實現源碼剖析_Golang
- 2022-01-12 修改node_modules的包
- 2023-01-18 Python3中安裝后SSL問題及解決_python
- 2022-01-27 @ConfigurationProperties放在類上跟放在方法上有什么區別
- 2022-06-27 C#調用打印機實現打印_C#教程
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支