'''
继承中的super使用
特点:
1、如果类中不定义__init__,调用父类 super class的__init__
2、如果类继承父类也需要定义自己的__init__,就需要在当前类的__init__调用一下父类__init__
3、如何调用父类__init__:
super().init_(参数)
super(类型,对象).__init__(参数)
4、如果父类有eat(),子类也定义一个eat方法,默认搜索的原则:先找当前类,再去找父类s.eat()
父类提供的方法不能满足子类的需求,就需要在子类中定义一个同名的方法,这种形为:重写
5、子类的方法中也可以调用父类方法:
super().方法名(参数)
'''
class Person:
def __init__(self, no, name, salary):
self.no = no
self.name = name
self.salary = salary
def __str__(self):
msg = '工号:{}, 姓名:{},本月工资:{}'.format(self.no, self.name, self.salary)
return msg
def getSalary(self):
return self.salary
class Worker(Person):
def __init__(self,no,name,salary,hours, per_hour):
super().__init__(no,name,salary)
self.hours = hours
self.per_hour = per_hour
def getSalary(self):
money = self.hours*self.per_hour
self.salary += money
return self.salary
class Salesman(Person):
def __init__(self, no, name, salary, salemoney, percent):
super().__init__(no, name, salary)
self.salemoney = salemoney
self.percent = percent
def getSalary(self):
money = self.salemoney*self.percent
self.salary += money
return self.salary
w = Worker('001', 'king', 2000, 160, 100)
s = w.getSalary()
print('月薪是:', s)
print(w)
saler = Salesman('002', 'lucy', 5000, 500, 0.3)
s = saler.getSalary()
print('月薪是--->:', s)
print(saler)
继承中的super使用
最新推荐文章于 2023-11-09 23:14:12 发布