中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中類繼承與多態的示例分析

發布時間:2022-01-05 17:27:53 來源:億速云 閱讀:155 作者:小新 欄目:開發技術

這篇文章主要介紹了Python中類繼承與多態的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

概念

類(Class): 用來描述具有相同的屬性和方法的對象的集合。

類變量:類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作為實例變量使用。

類有一個名為 __init__() 的特殊方法(構造方法),該方法在類實例化時會自動調用

self:self 代表的是類的實例,代表當前對象的地址,而 self.class 則指向類。

類調用 Car.weight

實例化  car01=Car(5)

實例對象調用  car01.weght

類的創建

#創建小汽車類和客車類
class Car(object):
    def __init__(self,weight):    #實例化對象時傳入特有屬性
        self.weight=weight
        print("小汽車")
        print(weight,"t")          #定義類內方法,功能是打印出實例化的小汽車的重量
    def func(self):
        print("小汽車的駕駛方法")
class Passenger_car(object):
    def __init__(self,weight):
        self.weight=weight
        print("客車")
        print(weight,"t")
    def func(self):
        print("客車的駕駛方法")

類的繼承

        我們在構造類時,Python3默認我們繼承了object這個基類,我個人理解object就是個空的類,可以不用管為何要在括號中寫上object,這是Python3的特性,在python2中如果你沒有寫object的話不會默認繼承了object這個基類。

        同樣的我們自己希望繼承的父類只需要把objetc改為我們自己定義的類名即可。子類中可以擁有父類中所有的公有屬性和方法,但是可以通過在變量名前加下劃線使其變為私有,這樣子類就不可以訪問父類中的成員了。

class Bus028(Passenger_car):
    def __init__(self,weight): #對基類方法的重寫
        self.weight=weight
        print("28路公交車")
        print(weight,"t")
    def func(self):           #對基類方法的重寫 
        print("28路公交車的駕駛方法")
    #子類在父類中繼承過來了func方法,但是在父類中修改了原來方法的內容

多態的使用

        以下三個公交車類的父類均為客車類,我們可以寫一個funcs方法使得每次調用funcs方法時,傳入不同的對象以執行不同的func方法,具體實現如下:

class Bus028(Passenger_car):
    def __init__(self,weight):
        self.weight=weight
        print("28路公交車")
        print(weight,"t")
    def func(self):
        print("28路公交車的駕駛方法")
class Bus906(Passenger_car):
    def __init__(self,weight):
        self.weight=weight
        print("906路公交車")
        print(weight,"t")
    def func(self):
        print("906路公交車的駕駛方法")
class BusB32(Passenger_car):
    def __init__(self,weight):
        self.weight=weight
        print("B32路公交車")
        print(weight,"t")
    def func(self):
        print("B32路公交車的駕駛方法")
def funcs(obj):        #此處obj表示傳入一個實例化對象
    obj.func()

主函數

from demo01 import *
def main():
    car01=Car(5)    #例化為帶有重量為5t的一個具體對象
    car01.func()
    passenger_car01=Passenger_car(20)    #例化為帶有重量為20t的一個具體對象
    passenger_car01.func()
    bus028_01=Bus028(15)        #例化為帶有重量為15t的一個具體對象
    bus906_01=Bus906(15)        #例化為帶有重量為15t的一個具體對象
    busB32_01=BusB32(15)        #例化為帶有重量為15t的一個具體對象
    funcs(bus028_01)            #調用funcs方法
    funcs(bus906_01)
    funcs(busB32_01)
 
if __name__=="__main__":
    main()

        可以看到,我將小汽車實例化為帶有重量為5t的一個具體對象,將客車實例化為帶有重量為20t的一個具體對象,將三個公交車實例化為帶有重量為15t的一個具體對象.

         如上圖所示,我每次在調用funcs方法時都傳入了一個實例化對象,funcs根據不同的對象執行相應的內部方法。

注:(我習慣上將方法讀作函數,在以后的文章中,方法一律被函數代替)

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python中類繼承與多態的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

科技| 舟曲县| 盘锦市| 兴安盟| 安泽县| 崇信县| 出国| 济源市| 惠来县| 卢氏县| 柯坪县| 平度市| 马鞍山市| 噶尔县| 桐庐县| 祁东县| 五家渠市| 鄱阳县| 上思县| 定边县| 承德市| 二手房| 扬州市| 调兵山市| 修水县| 中方县| 汤阴县| 阜南县| 云和县| 翼城县| 通州区| 镇坪县| 许昌县| 东乌| 申扎县| 乐安县| 长治市| 米易县| 河北区| 栖霞市| 碌曲县|