(承接上次的知识学习)
首先给出方法重写的定义:
1.如果子类对继承自父类的某个属性或方法不满意,可以在子类中对其(方法体)进行重新编写;
2.子类重写后的方法可以通过super().xxx()调用父类中被重写的方法。
给出以下 *** 作代码:
class Person (object):#说明Person继承object类 def __init__(self,name,age): self.name=name self.age=age def chs(self): print(self.name,self.age) #定义Person子类 class Student(Person): def __init__(self,name,age,stu_no): super(Student, self).__init__(name,age) self.stu_no=stu_no #方法重写 def chs(self): super(Student, self).chs() print("学号为:",self.stu_no) class Teacher(Person): def __init__(self,name,age,teacherofyear): super(Teacher, self).__init__(name, age) self.teacherofyear=teacherofyear #方法重写 def chs(self): super(Teacher, self).chs() print("教龄为:",self.teacherofyear) # 定义对象 stu1=Student('张三',20,'2113042122') tea1=Teacher('李四',45,10) stu1.chs() print('---------------------') tea1.chs() #输出: #张三 20 #学号为: 2113042122 #---------------------- #李四 45 #教龄为: 10
本案例子类对父类方法(chs)进行重写,并重新对其进行定义。
注意:此时父类原先的定义将会被覆盖。
如果此时仍然想使用父类中的方法可以使用super().xxx()
class Person (object):#说明Person继承object类 def __init__(self,name,age): self.name=name self.age=age def chs(self):#子类依然使用的父类方法 print(self.name,self.age class Student(Person): def __init__(self,name,age,stu_no): super(Student, self).__init__(name,age) self.stu_no=stu_no #方法重写 def chs(self):#子类改写父类方法 super(Student, self).chs()#子类使用父类方法 print("学号为:",self.stu_no) stu1=Student('张三',20,'2113042122') stu1.chs()#对象调用方法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)