文章目录
多态
注:多继承有时会带来混乱,尽量别用。
定义:属于同一类型的不同实例对同一消息做出的不同响应。
如程序员与人事都属于员工这同一类型,但程序员与人事是不同的实例,对于工作这一消息,即程序员会写代码,人事会招聘,即做出了不同响应。
python的内置数据类型用于属性字段
员工:1程序员 2人事;对于这些属性的字段我们都用的是Python内置的数据类型,如int、工资就是用浮点型、名字就是用字符串等等。
而对于要存一些状态:如1-31号,有时迟到,早退,这些状态我们也可以用内置的数据类型如:字典表去存储。
总之,大部分情况用内置的数据类型就够了,实在不行,写类也是一种数据类型。当类还搞不定时,此时你的设计就有问题了。
关联
总括:即员工类下边有部门,经理属性。而部门又可以定义成单独一个类,经理也可以,即这样他们之间有关联关系了,即像这种串联起来的关系,即包含关系。
对于员工基类,与派生类:程序员类,人事类,即类之间的关系。这几个类都有一个属性部门,但在分析对象时,这个部门还包含很多信息需要进一步关注,如:部门电话,部门经理,负责人;此时可以把部门单独拿出来写个类。之后如经理也可以进一步类似扩展了。即然后将这些关系串起来,即关联起来
#在这也可以定义一个函数,如处理项目的函数,这里边可能有项目经理,开发人员,以及需求部门,
#即这几种类型,而且这些都可以事先定义好。如刚才那个部门类型的类。
#只要搞清楚类间的关系可以随意调用,如:开发人员开发某项目-进度-日期
#即使用dev.name.start.即看到好多点点,不要糊涂,很可能就是使用面向对象里面,将定义好的对象相互串联,关联起来。如刚才这个例子将部门相互关联起来了,即class Department
class Department:#可以将这个类应用到员工类中,当然可以,因为他就是员工的一个组成部分。
def __init__(self,department,phone,manager):
self.department=department
self.phone=phone
self.manager=manager
class Employ:#类本身就是一种数据类型,将所有员工的共同,关系密切的部分抽象出来写个员工类。基本信息,作为基类超类。
#因为员工类中本来就有部门department,像java中可以告诉它这个部门有类型,你不要接受字符串了。
# 而去接受我定义的叫类Department这种类型。如department:Department
#而python是动态类型,不好声明,但也可以这样声明,但这只是表象,即它还可以接受其他类型的,因为 python是动态类型,
#即根本限制不住,但写上可读性好。
def __init__(self,department,name,birthday,salary):
self.department=department
self.name=name