类与类之间的关系
一.类与类之间的关系
在世界中的事物与事物之间总会有一些练习
在面向对象中,类与类之间也可以产生相关的关系
1.依赖关系
执行某个方法的时候,需要别的类来帮助你完成这个方法.这种关系最不紧密,因为随时可以更换另一个类来完成此方法
class Person:
def play(self, tools):
tools.run()
print("手不能停")
class Computer:
def run(self):
print("电脑开机,双击dnf")
class Phone:
def run(self):
print("打开王者荣耀")
c = Computer()
ph = Phone()
p = Person()
p.play(c)
p.play(ph)
2.关联关系
两个类必须是互相关联的,但是在某些特殊情况下是可以更改和更换的.
1.一对多关系
class Boy:
def __init__(self, name, girlFriend=None):
self.girlFriend = girlFriend
def chi(self):
if self.girlFriend:
print(f"带着女朋友{self.girlFriend.name}去吃")
else:
print("自己去吃吧")
def watch(self):
if self.girlFriend:
print(f"带着女朋友{self.girlFriend.name}去看")
else:
print("自己去看吧")
class Girl:
def __init__(self, name):
self.name = name
b = Boy("I")
g = Girl("beautiful girl")
b.girlFriend = g # 看好等效效果
b.chi()
g1 = Girl("佟丽娅")
b.girlFriend = g1 # 换了一个
b.chi()
b.watch()
2.一对多
class School:
def __init__(self, name):
self.teach_list = []
self.name = name
def ZhaoPin(self, teach):
self.teach_list.append(teach)
def ShangKe(self):
for t in self.teach_list:
t.work(self.name)
class Teacher:
def __init__(self, name):
self.name = name
def work(self,school):
print(f"{self.name}在{school}上课")
ob = School("北大")
t1 = Teacher("涛涛1")
t2 = Teacher("涛涛2")
t3 = Teacher("涛涛3")
t4 = Teacher("涛涛4")
ob.ZhaoPin(t1)
ob.ZhaoPin(t2)
ob.ZhaoPin(t3)
ob.ZhaoPin(t4)
ob.ShangKe()
3.继承关系
父类 = 基类 = 超类 一个东西不同的名字
子类 = 派生类
class Base: # 父类 = 基类 = 超类 一个东西
def chi(self):
print("我会吃")
class Foo(Base): # 子类 = 派生类 一个东西
def he(self):
print("我会喝")
f = Foo()
f.chi()
f.he()

浙公网安备 33010602011771号