類的繼承派生

2022-08-18 04:48:18 字數 1446 閱讀 2007

一、什麼是繼承

i:繼承是一種建立新類的方式,新建的類可稱為子類或派生類,父類又可稱為基類或超類,子類會遺傳父類的屬性

ii:需要注意的是:python支援多繼承

在python中,新建的類可以繼承乙個或多個父類

class parent1(object): # 父類

x=1111

​class parent2(object):# 父類

pass

​class sub1(parent1): # 單繼承

pass

​class sub2(parent1,parent2): # 多繼承

pass

ps1: 在python2中有經典類與新式類之分

新式類:繼承了object類的子類,以及該子類的子類子子類。。。

經典:沒有繼承object類的子類,以及該子類的子類子子類。。。

在python3中沒有繼承任何類,那麼會預設繼承object類,所以python3中所有的類都是新式類

iii:python的多繼承

優點:子類可以同時遺傳多個父類的屬性,最大限度地重用**

缺點:1、違揹人的思維習慣:繼承表達的是一種什麼"是"什麼的關係

2、**可讀性會變差

3、不建議使用多繼承,有可能會引發可惡的菱形問題,擴充套件性變差,

如果真的涉及到乙個子類不可避免地要重用多個父類的屬性,應該使用mixins

二、為何要用繼承:用來解決類與類之間**冗餘問題

三、如何實現繼承

class

oldboypeople:

school = '上海校區'

​def

__init__(self, name, age, gender):

self.name = name

self.age = age

self.gender = gender​​

class

student(oldboypeople):

deftell_info(self):

print(f'學生姓名:正在上課。')​​

class

teacher(oldboypeople):

def__init__(self, name, age, gender, salary, level):

oldboypeople.__init__(self, name, age, gender)

self.salary = salary

self.level = level

​def

tell_info(self):

print(f'老師:的薪水是')

# 呼叫

teacher_obj = teacher('egon', '44', 'male', '10000', 5)

teacher_obj.tell_info()

類的繼承與派生

類的繼承與派生 一 派生類生成過程 1 吸收基類成員。2 改造基類成員。3 擴充基類成員。在類的派生中,建構函式和析構函式不能被派生。派生類繼承了基類的全部資料成員和除了構造,析構之外的全部函式 成員。二 類的繼承方式有共有繼承 保護繼承 私有繼承三種 1 公有繼承。基類的公有和保護成員的訪問屬性在...

類的繼承與派生

儘管在派生類物件中含有從基類繼承而來的成員,但派生類並不能直接初始化這些成員,必須使用基類的建構函式來初始化它的基類成員。初始化順序 先初始化基類成員,在初始化自己新增成員。派生類可以訪問基類的公有成員和受保護成員。類的作用域分辨符。我們可以將基類的指標或引用繫結到派生類物件上,但反過來不行,不存在...

類的繼承與派生

乙個新類從已有的類獲得其已有特性,稱為類的繼承 從已有的類 父類 基類 產生乙個新的子類 派生類 稱為類的派生。因此,類的繼承與派生是同樣乙個過程的兩個方向的描述。單繼承 乙個派生類只從乙個基類派生 單繼承關係形成的層次是乙個樹形結構。箭頭由派生類指向基類。某乙個事物是由其他幾種事物構成的,那麼其他...