您現在的位置是:首頁 > 單機遊戲首頁單機遊戲

python學習之類與物件的繼承,附案例

簡介python學習之類與物件的繼承類的繼承繼承的用法:class 類名(父類):沒有繼承前,我們如果想用另一個類裡面的大多數功能或者全部功能,我們只能去手動複製另一個類中的需要用到的程式碼,然後貼上到本類中,這就失去了程式碼的特性複用性,所以

類的繼承與改寫是怎麼樣的

python學習之類與物件的繼承

類的繼承

繼承的用法:

class 類名(父類):

沒有繼承前,我們如果想用另一個類裡面的大多數功能或者全部功能,我們只能去手動複製另一個類中的需要用到的程式碼,然後貼上到本類中,這就失去了程式碼的特性複用性,所以出現了繼承的概念

繼承就是:把父類的功能和屬性繼承下來,然後子類就擁有了和父類一樣的功能,父類中的所有屬性和方法都可以被子類呼叫,而且子類還可以擁有屬於它自己的獨特的方法

比如:手機類有打電話,發簡訊,看影片,聽音樂等功能,但是這些功能還不滿足需求,現在想要建立一個華為手機類,它既有打電話,發簡訊,看影片,聽音樂等功能,還有5G的功能,此時就可以用繼承

首先把手機類中的所有方法都繼承下來,然後在建立自己獨特的方法

案例:

手機類:

class Phone:

‘’‘

這是一個手機類

主要功能有,打電話,發簡訊,看電視,聽音樂

主要屬性有,華為,3000,土豪金,android

’‘’

#透過初始化函式__init__把屬性進行初始化

def __init__(self,brand_name,price,color,os):#可以給初始化引數進行預設值

self。brand_name =brand_name

self。price=price

self。color= color#把引數賦值給物件,只能用物件呼叫

Phone。os = os#把引數賦值給類,既可以用類呼叫也可以用物件呼叫

#功能,定義了幾個方法

def call(self,name):

print(‘我的功能是打電話,我給{}打電話’。format(name))

@staticmethod

def massage(*arge):

print(‘我的功能是用來發簡訊的,我的簡訊內容是{}’。format(arge))

@classmethod

def watchTV(cls):#類方法,在類方法中呼叫物件方法,需要類名()。方法名(),呼叫靜態方法直接類名。方法名()

print(‘我的功能是看電視的’)

return ‘我的功能是看電視的’

@classmethod

def music(self,music_name=‘天堂’):

print(‘我的功能是用來聽音樂的,我聽的歌曲是{}’。format(music_name))

def calss_info(self):#物件方法

print(‘我的手機是{}手機,顏色是{},是{}系統,價格是{}元’。format(self。brand_name,self。color,self。os,self。price))

#呼叫類

#p=Phone(‘華為’,3500,‘土豪金’,‘android’)# 呼叫類需要在類的後面加一個括號

#p=Phone()

#p。call(‘張三’)

#p。calss_info()

if __name__ == ‘__main__’:

Phone。massage(‘今天週末明天又要上班’)

Phone。watchTV()

建立一個華為手機類

import calss_init

#建立華為類,讓它繼承手機類

class HuaWei(calss_init。Phone):

#華為手機支援5G

def G5(self):

w =self。watchTV()

print(‘我可以用5g了,{0},我可以用5g看電視’。format(w))

#因為父類中有初始化函式,所以繼承後建立物件時就需要給初始化引數賦值

h=HuaWei(‘華為’,5000,‘藍色’,‘android’)

#呼叫父類裡面的call方法

h。call(‘張三’)

h。G5()

python學習之類與物件的繼承,附案例

繼承相關的拓展和重寫

拓展:就是父類沒有的方法,子類獨有的方法

重寫:就是父類已有的方法,在子類中重新定義新的功能,方法名相同,功能不同

#匯入手機類

import calss_init

#建立華為類,讓它繼承手機類

class HuaWei(calss_init。Phone):

#華為手機支援5G

def G5(self):#這個方法就是拓展出來的方法,是父類中不存在的

w =self。watchTV()

print(‘我可以用5g了,{0},我可以用5g看電視’。format(w))

def music(self):#這個方法在父類中存在 這裡重新寫了不同的功能

print(‘我是一個新的方法,我可以下載歌曲’)

#因為父類中有初始化函式,所以繼承後建立物件時就需要給初始化引數賦值

h=HuaWei(‘華為’,5000,‘藍色’,‘android’)

#呼叫父類裡面的call方法

h。call(‘張三’)

h。G5()

h。music()#此時的music的功能是子類的重新後的功能,和父類沒關係

python學習之類與物件的繼承,附案例

Top