物件導向 組合

2021-10-24 08:08:00 字數 1595 閱讀 4944

物件導向之組合

1、什麼是繼承?什麼是組合?

顧名思義:繼承就是什麼是什麼的關係

組合就是什麼有什麼的關係

class

person

: nationnality =

'china'

def__init__

(self, name, age, ***)

: self.name = name

self.age = age

self.*** = ***

class

teacher

(person)

:def

__init__

(self, name, age, ***, level, salary)

:super()

.__init__(name, age, ***)

self.level = level

self.salary = salary

class

student

(person)

:def

__init__

(self, name, age, ***, hobby)

:super()

.__init__(name, age, ***)

self.hobby = hobby

class

course

:def

__init__

(self, name, price, cycle)

: self.name = name

self.price = price

self.cycle = cycle

deftell_info

(self)

:print

('課程名:%s,學費:%s,學習週期:%s'

%(self.name, self.price, self.cycle)

)teacher1 = teacher(

'alen',38

,'male',10

,10000

)student1 = student(

'egon',18

,'male'

,'sleep'

)python = course(

'python'

,7000

,'6 months'

)student1.course = python # 這種關係稱之為組合,以內不存在繼承的關係,即子級沒有去父級找的關係

teacher1.course = python # 這就是什麼有什麼的關係,老師教有這門課,學生有這門課

# 老師和學生都有這門課程

print

(teacher1.course.name)

print

(student1.course.name)

以上可以看出,教師和學生並沒有繼承課程,但是教師和學生都同時擁有python這門課程,這樣的關係就稱之為組合

物件導向 組合

乙個物件的屬性是來自另一類的物件,稱之為組合。組合也是用來解決類與類 冗餘的問題 組合的基本形式 class too 作為另乙個物件的屬性 pass class bar def init self,too self.too too t1 too b1 bar t1 class too a 1111 ...

物件導向 物件的組合

組合 乙個類的例項可以當做引數傳給另乙個類的例項 class school def init self,name,address self.name name self.address address class course def init self,name,price,outline,sch...

物件導向初識(組合)

一 物件導向 組合 定義 給乙個類的物件封裝乙個屬性,這個屬性是另乙個類的物件。意義 讓類的物件與另乙個類的物件產生關係,類與類之間產生關係。說白了也就是把a物件當成屬性傳入b物件,然後讓b物件1去呼叫a物件 人物使用 攻擊另乙個人物 class game role def init self,na...