Python面向?qū)ο蟪绦蛟O(shè)計多繼承和多態(tài)用法示例
本文實例講述了Python面向?qū)ο蟪绦蛟O(shè)計多繼承和多態(tài)用法。分享給大家供大家參考,具體如下:
多繼承
就是一個子類繼承多個父類:

多繼承的例子,如下:
# -*- coding:utf-8 -*-
#! python3
class Base(object):
def test(self):
print("------base")
class A(Base):
def test1(self):
print("-----test1")
class B(Base):
def test2(self):
print("----test2")
class C(A,B):
pass
c=C()
c.test1()
c.test2()
c.test()
運(yùn)行結(jié)果:
-----test1
----test2
------base

C也能繼承Base
注:多繼承中,每個父類都有相同的方法,子類繼承時,會有一個繼承順序
想要查看該順序的調(diào)用流程可以使用以下方法:
最后調(diào)用的是object方法,如果object方法也不存在,說明類中沒有這個方法
print(子類類名.__mro__)
# -*- coding:utf-8 -*-
#! python3
class Base(object):
def test(self):
print("-----Base")
class A(Base):
def test(self):
print("----A")
class B(Base):
def test(self):
print("----B")
class C(A,B):
def test(self):
print("-----C")
c=C()
c.test()
運(yùn)行結(jié)果:
-----C
多態(tài)
什么是多態(tài):
定義時的類型和運(yùn)行時的類型不一樣,也就是定義時并不確定要調(diào)用的是哪個方法,只有運(yùn)行的時候才能確定調(diào)用的是哪個
# -*- coding:utf-8 -*-
#! python3
class Dog(object):
def print_self(self):
print("父類")
class Xiaotq(Dog):
def print_self(self):
print("子類")
def introduce(temp):
temp.print_self()
dog1=Dog()
dog2=Xiaotq()
introduce(dog1)
introduce(dog2)
運(yùn)行結(jié)果:
父類
子類
temp就是對象的引用,它和對象指向同一塊空間
多態(tài)的作用:
在游戲中有多種類型的角色,要在玩家開始玩的時候才能選擇,所以開始并不知道玩家選的什么角色,這就是多態(tài)
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O(shè)計入門與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
Python數(shù)據(jù)結(jié)構(gòu)與算法之使用隊列解決小貓釣魚問題
這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)與算法之使用隊列解決小貓釣魚問題,結(jié)合實例形式分析了Python使用隊列實現(xiàn)小貓釣魚游戲的算法操作技巧,代碼中備有較為詳盡的注釋便于讀者理解,需要的朋友可以參考下2017-12-12
基于Python實現(xiàn)自動關(guān)機(jī)小工具
上班族經(jīng)常會遇到這樣情況,著急下班結(jié)果將關(guān)機(jī)誤點成重啟,或者臨近下班又通知開會,開完會已經(jīng)遲了還要去給電腦關(guān)機(jī)。今天使用PyQt5做了個自動關(guān)機(jī)的小工具,設(shè)置好關(guān)機(jī)時間然后直接提交即可,需要的可以參考一下2022-10-10
Python數(shù)學(xué)建模PuLP庫線性規(guī)劃入門示例詳解
這篇文章主要為大家介紹了Python數(shù)學(xué)建模PuLP庫線性規(guī)劃入門示例詳解,想學(xué)習(xí)關(guān)于Python建模的同學(xué)可以學(xué)習(xí)參考下,希望能夠有所幫助2021-10-10
解決Python訪問MySQL數(shù)據(jù)庫速度慢的問題
這篇文章主要介紹了解決Python訪問MySQL數(shù)據(jù)庫速度慢的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
python+selenium實現(xiàn)簡歷自動刷新的示例代碼
這篇文章主要介紹了python+selenium實現(xiàn)簡歷自動刷新的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
python使用fileinput模塊實現(xiàn)逐行讀取文件的方法
這篇文章主要介紹了python使用fileinput模塊實現(xiàn)逐行讀取文件的方法,涉及Python中fileinput模塊操作文件的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04

