在讨论继承inheritance之前,我们要先讨论关联和联系
关联和联系
关系是对象之间可能发生的事情,它们可以相互依赖,有三个层次的重要性:
联系——薄弱关系
联系是阶级之间最薄弱的关系形式。 如果我们有两个类,B完全独立于A,但只需要a的一些属性来运行它的方法。重要的是A和B可以彼此独立。
聚集——中等关系
通常,如果类A需要类B来执行某些功能,则B对象将被创建并将其传递给A。存在一种循环,但是如果我们删除对象A,那么B的内容就可以在没有对象的情况下生存。就是A要求B运行,B将在A中反馈,如果删除A,B依然存在。
组成——牢固关系
类A由另一类B的一个或多个实例组成。换句话说,一个类是容器,另一个类是内容。(因此如果删除A,则其内容对象B也将被删除。没有A就没有B,因为A包含B。)
联系实例
第一个例子:
Salary类是独立的,它用init方法,取时长和付款率。将它们赋给属性,然后会有年薪返回的方法(每月工作时间,自付工资*12)
employee也是独立的,但在计算工资奖金时需要工资。当我们有annual_salary_with_bonus时,我们会通annual_salary年薪返回的是年薪加上自我奖金的总和。
因为这里没有年薪,employee对象要传入obj_sal。所以即使这两个类是完全分开的,为了计算Employee类的年薪和奖金annual_salary_with_bonus,我们需要传递obj_sal =Salary(40, 10.50)。
然后有一个对象employee,它是从类employees创建的。当我们想从obj_emp计算出带奖金的年薪obj_emp.annual_salary_with_bonus,我们得传递作为参数的obj_sal.get_annual_salary
我们需要在obj_sal运行accessor方法获取值,并将其传递给em