python 物件導向 繼承 多型

2021-09-27 11:45:01 字數 2739 閱讀 3633

概念理解:

類似於祖輩留下的遺產,父輩可以使用,父輩留下的東西,子輩可以使用,這就是繼承。

例如:

建立乙個動物類,貓也是乙個動物,所以貓也具有動物的屬性:

class animal:   #定義乙個動物類

def eat(self):

print('吃飯')

def drink(self):

print('喝水')

#貓也是乙個動物,所以貓也具有動物的屬性,即貓繼承了動物的屬性

class cat(animal): #繼承的格式

def call(self):

print('喵喵')

#但是貓具有自己的屬性

class dog(animal):

def bark(self):

print('汪汪')

fentiao = cat() #直接進行引用即可

fentiao.eat()

fentiao.drink()

fentiao.call()

wangcai = dog()

wangcai.eat()

wangcai.bark()

當父類方法不能滿足子類的需求的時候

可以對方法進行重寫

1.對父類的方法進行擴充套件

2.覆蓋父類方法

1、對父類的方法進行擴充套件

對父類方法進行擴充套件super函式

當hellokity類重寫了父類方法後,如果還想繼承cat類中的方法,則應該使用super函式進行繼承

class animal:   #父類

def eat(self):

print('吃~~~')

class cat(animal): #是animal的子類,是hellokity的父類

def call(self):

print('喵喵')

class hellokitty(cat): #直接繼承了cat類,間接繼承了animal類

def sepak(self):

print('我可以說日語!!')

def call(self): #進行繼承

# 呼叫原本在父類中封裝的方法,用super函式

super().call() #python3.x

# cat.call(self) #python2.x

print('$#%$#%$#')

kt = hellokitty()

kt.eat()

kt.call()

kt.sepak()

輸出:

吃~~~

喵喵$#%$#%$#

我可以說日語!!

2、覆蓋父類方法

想要覆蓋父類中的方法,去掉super函式即可

此時沒有輸出cat類中的方法

吃~~~

$#%$#%$#

我可以說日語!!

class a():

def test(self):

print('a---->test方法')

def demo(self):

print('a---->demo方法')

class b():

def test(self):

print('b---->test方法')

def demo(self):

print('b---->demo方法')

class c(a,b):

##當父類的方法或屬性同名時,按括號中的父類先後順序執行

pass

c = c()

c.test()

c.demo()

輸出結果:

a---->test方法

a---->demo方法

class dog(object):

def __init__(self, name):

self.name = name

def game(self):

print('%s 開心的玩~' % (self.name))

class gaofei(dog):

# 父類方法不能滿足子類的需求 重寫game

def game(self):

print('%s和公尺老鼠一起玩~~~' %(self.name))

class person(object):

def __init__(self,name):

self.name = name

def game_with_dog(self,dog):

print('%s和%s玩' %(self.name,dog.name))

# 建立乙個狗物件

# wangcai = dog('大黃')

wangcai = gaofei('高飛')

# 建立乙個人物件

xiaoming = person('小明')

# 讓小明和狗玩

xiaoming.game_with_dog(wangcai)

python物件導向(繼承,多型)

多型鴨子型別 獲取物件資訊 type,isinstance,dir 定義class animal object 定義乙個名為animal的基類 defrun self print 動物可以跑 class dog animal 定義乙個名為dog的子類 pass class cat animal 定義...

Python物件導向 繼承和多型

繼承class animal object def run self print animal is running.class dog animal pass class cat animal pass dog run cat run 執行結果 animal is running.an anima...

物件導向 封裝 繼承 多型

物件導向 封裝 繼承 多型物件導向 封裝 一 封裝 private 資料型別 名字 成員變數 public 預設一致 名字 屬性 set 類中不僅可以有成員變數和屬性,還可以有成員方法 訪問修飾符 4個 public 公共的,任何地方都可以訪問,但是需要引用 命名空間 private 私有的,類的內...