面向对象之组合
1、什么是继承?什么是组合?
顾名思义:继承就是 什么是什么的关系
组合就是 什么有什么的关系
class person:
nationnality = 'china'
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
class teacher(person):
def __init__(self, name, age, sex, level, salary):
super().__init__(name, age, sex)
self.level = level
self.salary = salary
class student(person):
def __init__(self, name, age, sex, hobby):
super().__init__(name, age, sex)
self.hobby = hobby
class course:
def __init__(self, name, price, cycle):
self.name = name
self.price = price
self.cycle = cycle
def tell_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这门课程,这样的关系就称之为组合