Python–继承和多态
将对象的共同属性进行归类,不用点进行区分,重点在于继承共同父类的函数处理名称和年龄,然后各自处理自己的职位和动作。
class Person(object):
def __init__(self,name,age):
self.__name = name
self.__age = age
@property
def name(self):
return self.__name
@property
def age(self):
return self.__age
@age.setter
def age(self,age):
self.__age = age
def play(self):
print('%s正在愉快的玩耍' % self.__name)
def watch_av(self):
if self.__age <= 18:
print('%s正在玩飞行棋' % self.__name)
else:
print('%s正在看片' % self.__name)
class Student(Person):
def __init__(self,name,age,grade):
super().__init__(name,age) #执行父类的函数获取他的变量
self.__grade = grade #年级
@property
def grade(self):
return self.__grade
@grade.setter
def grade(self,grade):
self.__grade=grade
# def study(self,course):
# print('%s的%s正在学习%s' % (self.__grade,self.__name,course))
def study(self, course):
print('%s的%s正在学习%s.' % (self.grade, self.name, course))
class Teacherr(Person):
def __init__(self,name,age,title):
super().__init__(name,age)
self.__title = title
@property
def title(self):
return self.__title
@title.setter
def title(self,title):
self.__title = title
def teach(self,course):
print('%s%s正在讲%s'%(self.name,self.title,course))
def main():
stu=Student('小明',12,'初三')
stu.study('数学')
stu.watch_av()
tea = Teacherr('小黄',30,'教授')
tea.teach('python')
tea.watch_av()
if __name__ == '__main__':
main()