Python 物件導向程式設計的三大特性之繼承

2022-09-25 03:54:08 字數 3039 閱讀 3244

目錄

1、繼承的實際栗子

2、繼承的好處

3、繼承的使用場景

具體可以看下面的【不使用繼承、使用繼承的區別】

4、繼承有幾種?

單繼承多繼承

5、python 中繼承的簡單語法

class parent:

pass

class child(parent):

pass

有個重點:

所有類的都有乙個共同父類,就是 object,缺省會繼承它,寫或不寫都一樣

class parent:

pass

class parent(object):

pass

1、需求背景

有乙個動物類、狗類、貓類

程式設計客棧

2、不使用繼承

類圖需求分析

實際**:

# 不使用繼承

class animal:

def eat(self):

print("吃東西...")

def drink(self):

print("喝水...")

def run(self):

print("跑步...")

class cat:

def eat(self):

print("吃東西...")

def drink(self):

print("喝水...")

def run(self):

print("跑步...")

def miao(self):

print("喵喵叫...")

class dog:

def eat(self):

print("吃東西...")

def drink(self):

print("喝水...")

def run(self):

print("跑步...")

def wang(self):

print("汪汪叫...")

這樣寫有什麼問題?

2、使用繼承

類圖從類圖就能看到,使用繼承就變得簡單多了

需求分析

實際**:

# 使用繼承

class animal:

def eat(self):

print("吃東西...")

def drink(self):

print("喝水...")

def run(self):

print("跑步...")

class cat(animal):

def miao(www.cppcns.comself):

print("喵喵叫...")

class dog(animal):

def wang(self):

print("汪汪叫...")

優勢:專業術語總結

1、什麼是傳遞性

通俗來講

官方來講

實際栗子:

類圖實際**:

class animal:

def eat(self):

print("吃東西...")

def drink(self):

print("喝水...")

def run(self):

print("跑步...")

class cat(animal):

def miao(self):

print("喵喵叫...")

class dog(animal):

def wang(self):

print("汪汪叫...")

class chai(dog):

def shake(self):

print("小柴柴搖尾巴...")

chai = chai()

# 呼叫 父類的父類 的方法

chai.eat()

# 呼叫 父類 的方法

chai.wang()

# 呼叫 自己獨有 的方法

chai.shake()

# 輸出結果

吃東西...

汪汪叫...

小柴柴搖尾巴...

抽象即抽取類似或者說比較像的部分

小栗子:

1、繼承的重點

**栗子:

class animal:

def __init__(self, name, age, ***):

self.__name = name

self.__age = age

self.__*** = ***

# 提取的公共方法

def eat(self):

print(f" 正在吃飯....")

@property

def name(self):

return self.__name

class person(animal):

def walk(self):

print(f" 兩條腿正在走路")

class pig(animal):

def kill(self):

print(f" 豬正在去屠宰場ing...")

class dog(animal):

def wang(self):

print(f" 汪汪叫ing...")

person = person("小菠蘿", 25, "male")

pig = pig("麥兜", 4, "公")

dog = dog("柴犬", 3, "母")

# 呼叫父類的公共方法

person.eat()

pig.eat()

dog.eat()

#程式設計客棧 呼叫子類獨有的方法

person.walk()

pig.kill()

dog.wang()

# 輸出結果

小菠蘿 正在吃飯....

麥兜 正在吃飯....

柴犬 正在吃飯....

小菠蘿 兩條腿正在走路

麥兜 豬正在去屠宰場ing...

柴犬 汪汪叫ing...

物件導向程式設計三大特性

類和物件的關係 類 而物件則是以類為模板所建立的。類的組成 物件建立記憶體模型 1 當程式開始執行,方法區以載入好程式所需類的位元組碼檔案。2 棧記憶體引導程式,當執行到需要建立物件時,會在堆記憶體中建立物件,此時物件的成員變數為初始值,成員方法為位址,指向方法區中的類成員方法。3 堆記憶體中所建立...

python物件導向三大特性

定義 封裝一些資料和方法,只給外界提供必要的功能,掩蓋細節,提高 復用性和系統安全性。資料角度 用乙個類包裝多個變數,還可以定義方法,運算元據 行為角度 不同程式設計師開發乙個專案的不同功能,在使用時,直接呼叫,不需要思考其內部實現 設計角度 1 分而治之 拿到需求之後,分析需求,將需求拆解為不同的...

python物件導向的三大特徵

封裝就是對類和物件的成員訪問進行限制,設定可以訪問的方式和不可以訪問的方式。分類 私有化的封裝 當前類 物件種可以使用,類 物件外和子類 物件都不可以用 受保護的封裝 當前類 物件和子類 子類物件可以使用門,類 物件外不可以使用 公共的封裝 任何位置都可以訪問 例 class father 屬性 男...