擅长:python、mysql、java
<p>你真正拥有的是两种不同类型的员工,全职和兼职。因此,我可能会使用这样的设计:</p>
<pre><code>class Employee(object):
def __init__(self, name, wage):
self.name = name
self.wage = wage
def calculate_wage(self, hours):
return hours * self.wage
class FullTimeEmployee(Employee):
def __init__(self, name):
super().__init__(name, 20)
class PartTimeEmployee(Employee):
def __init__(self, name):
super().__init__(name, 12)
</code></pre>
<p><code>Employee</code>包含任何一种类型的员工所共有的一切。子类包含特定于每种类型的信息,到目前为止只包含每种类型支付的小时工资。注意没有<code>ReturnName</code>方法。如果您想要员工的名字,只需直接访问<code>name</code>属性。你知道吗</p>
<pre><code>ft_emp = FullTimeEmployee("Mike")
ft_emp_name = ft_emp.name
pt_emp = PartTimeEmployee("Bill")
pt_emp_name = pt_emp.name
ft_pay = ft_emp.calculate_wage(40)
pt_pay = pt_emp.calculate_wage(20)
print "Full time employee %s made $%d for the week." %(ft_emp_name, ft_pay)
print "Part time employee %s made $%d for the week." %(pt_emp_name, pt_pay)
</code></pre>